gnucash master: Multiple changes pushed

Geert Janssens gjanssens at code.gnucash.org
Tue Jun 18 09:19:06 EDT 2019


Updated	 via  https://github.com/Gnucash/gnucash/commit/06fae122 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/f39275be (commit)
	 via  https://github.com/Gnucash/gnucash/commit/528bbff8 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/0a8e0d29 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/70393bc0 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/707f9a40 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/3f8f32ab (commit)
	 via  https://github.com/Gnucash/gnucash/commit/6b5dcc38 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/93489d4f (commit)
	 via  https://github.com/Gnucash/gnucash/commit/f2de292c (commit)
	 via  https://github.com/Gnucash/gnucash/commit/0d426fcf (commit)
	 via  https://github.com/Gnucash/gnucash/commit/32a83678 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/8d242528 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/53f59f77 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/cb50f7aa (commit)
	from  https://github.com/Gnucash/gnucash/commit/7102b1d2 (commit)



commit 06fae12265bd33671046702609cff8c8dcab4a7f
Author: Geert Janssens <geert at kobaltwit.be>
Date:   Sat Jun 15 16:12:25 2019 +0200

    RptCleanup - Add compat interface for all module interfaces that were deprecated so far
    
    These can be permanently removed for the gnucash 5.x series. A comment has been added to that effect.

diff --git a/common/test-core/CMakeLists.txt b/common/test-core/CMakeLists.txt
index afb7f0ec0..30bcf4d5d 100644
--- a/common/test-core/CMakeLists.txt
+++ b/common/test-core/CMakeLists.txt
@@ -68,6 +68,10 @@ gnc_add_scheme_test_targets(scm-test-core
 
 add_dependencies(check scm-test-core)
 
+# Module interfaces deprecated in 4.x, will be removed for 5.x
+gnc_add_scheme_deprecated_module ("gnucash unittest-support" "tests unittest-support" "scm-test-core" "")
+
+
 if(NOT GTEST_SHARED_LIB)
   set (lib_gtest_SOURCES ${GTEST_SRC_DIR}/src/gtest-all.cc)
   add_library(gtest STATIC  ${lib_gtest_SOURCES})
diff --git a/gnucash/gnome/CMakeLists.txt b/gnucash/gnome/CMakeLists.txt
index 3cc49321d..b16eaf4ba 100644
--- a/gnucash/gnome/CMakeLists.txt
+++ b/gnucash/gnome/CMakeLists.txt
@@ -240,6 +240,10 @@ ${GUILE_OUTPUT_DIR}
 "${GUILE_DEPENDS}"
 FALSE
 )
+
+# Module interfaces deprecated in 4.x, will be removed for 5.x
+gnc_add_scheme_deprecated_module ("gnucash report report-gnome" "gnucash report-menus" "scm-gnome" "")
+
 set_dist_list(gnome_DIST
         CMakeLists.txt gnome.i gnucash.appdata.xml.in gnucash.desktop.in.in
         ${gnc_gnome_noinst_HEADERS} ${gnc_gnome_SOURCES} ${gnome_SCHEME})
diff --git a/gnucash/import-export/qif-imp/CMakeLists.txt b/gnucash/import-export/qif-imp/CMakeLists.txt
index c7e963711..cacd62f28 100644
--- a/gnucash/import-export/qif-imp/CMakeLists.txt
+++ b/gnucash/import-export/qif-imp/CMakeLists.txt
@@ -90,6 +90,10 @@ gnc_add_scheme_targets(scm-qif-import
   TRUE
 )
 
+# Module interfaces deprecated in 4.x, will be removed for 5.x
+gnc_add_scheme_deprecated_module ("gnucash import-export qif-import" "gnucash qif-import" "scm-qif-import-2" "")
+gnc_add_scheme_deprecated_module ("gnucash import-export string" "gnucash string" "scm-qif-import-0" "")
+
 set_local_dist(qif_import_DIST_local CMakeLists.txt file-format.txt ${qif_import_SOURCES} ${qif_import_noinst_HEADERS}
         ${qif_import_SCHEME_0} ${qif_import_SCHEME} ${qif_import_SCHEME_2})
 set(qif_import_DIST ${qif_import_DIST_local} ${test_qif_import_DIST} PARENT_SCOPE)
diff --git a/gnucash/report/CMakeLists.txt b/gnucash/report/CMakeLists.txt
index 093a4f6e7..20e949bc8 100644
--- a/gnucash/report/CMakeLists.txt
+++ b/gnucash/report/CMakeLists.txt
@@ -116,10 +116,22 @@ gnc_add_scheme_targets(scm-report-eguile-parts
 gnc_add_scheme_targets(scm-report-eguile
   "${report_eguile_SCHEME}"
   "gnucash"
-  scm-report-1
+  scm-report-equile-parts
   FALSE
 )
 
+# Module interfaces deprecated in 4.x, will be removed for 5.x
+gnc_add_scheme_deprecated_module ("gnucash report eguile-gnc" "gnucash eguile" "scm-report-eguile" "")
+gnc_add_scheme_deprecated_module ("gnucash report eguile-html-utilities" "gnucash eguile" "scm-report-eguile" "")
+gnc_add_scheme_deprecated_module ("gnucash report eguile-utilities" "gnucash eguile" "scm-report-eguile" "")
+gnc_add_scheme_deprecated_module ("gnucash report report-system" "gnucash report" "scm-report-1" "")
+
+gnc_add_scheme_deprecated_module ("gnucash report business-reports" "" "" "")
+gnc_add_scheme_deprecated_module ("gnucash report report-system collectors" "" "" "")
+gnc_add_scheme_deprecated_module ("gnucash report report-system report-collectors" "" "" "")
+gnc_add_scheme_deprecated_module ("gnucash report stylesheets" "" "" "")
+gnc_add_scheme_deprecated_module ("gnucash report utility-reports" "" "" "")
+
 add_custom_target(scm-report ALL DEPENDS scm-report-eguile)
 
 set_local_dist(report_DIST_local CMakeLists.txt
diff --git a/gnucash/report/reports/CMakeLists.txt b/gnucash/report/reports/CMakeLists.txt
index 79431b2aa..76a0d5c64 100644
--- a/gnucash/report/reports/CMakeLists.txt
+++ b/gnucash/report/reports/CMakeLists.txt
@@ -159,6 +159,56 @@ add_custom_target(scm-reports ALL DEPENDS
     scm-reports-us
     scm-reports-de_DE)
 
+# Module interfaces deprecated in 4.x, will be removed for 5.x
+gnc_add_scheme_deprecated_module ("gnucash report standard-reports" "gnucash reports" "scm-rpt-reports" "")
+gnc_add_scheme_deprecated_module ("gnucash report aging" "gnucash reports aging" "scm-reports-common" "")
+gnc_add_scheme_deprecated_module ("gnucash report standard-reports average-balance" "gnucash reports example average-balance" "scm-reports-example" "")
+gnc_add_scheme_deprecated_module ("gnucash report standard-reports daily-reports" "gnucash reports example daily-reports" "scm-reports-example" "")
+gnc_add_scheme_deprecated_module ("gnucash report hello-world" "gnucash reports example hello-world" "scm-reports-example" "")
+gnc_add_scheme_deprecated_module ("gnucash report test-graphing" "gnucash reports example sample-graphs" "scm-reports-example" "")
+gnc_add_scheme_deprecated_module ("gnucash report locale-specific de_DE" "gnucash reports locale-specific de_DE taxtxf" "scm-reports-de_DE" "")
+gnc_add_scheme_deprecated_module ("gnucash report taxtxf-de_DE" "gnucash reports locale-specific de_DE taxtxf" "scm-reports-de_DE" "")
+gnc_add_scheme_deprecated_module ("gnucash report locale-specific us" "gnucash reports locale-specific us taxtxf" "scm-reports-us" "")
+gnc_add_scheme_deprecated_module ("gnucash report taxtxf" "gnucash reports locale-specific us taxtxf" "scm-reports-us" "")
+gnc_add_scheme_deprecated_module ("gnucash report standard-reports account-piecharts" "gnucash reports standard account-piecharts" "scm-reports-standard" "")
+gnc_add_scheme_deprecated_module ("gnucash report standard-reports account-summary" "gnucash reports standard account-summary" "scm-reports-standard" "")
+gnc_add_scheme_deprecated_module ("gnucash report standard-reports advanced-portfolio" "gnucash reports standard advanced-portfolio" "scm-reports-standard" "")
+gnc_add_scheme_deprecated_module ("gnucash report standard-reports balance-forecast" "gnucash reports standard balance-forecast" "scm-reports-standard" "")
+gnc_add_scheme_deprecated_module ("gnucash report standard-reports balance-sheet" "gnucash reports standard balance-sheet" "scm-reports-standard" "")
+gnc_add_scheme_deprecated_module ("gnucash report balsheet-eg" "gnucash reports standard balsheet-eg" "scm-reports-standard" "")
+gnc_add_scheme_deprecated_module ("gnucash report standard-reports balsheet-pnl" "gnucash reports standard balsheet-pnl" "scm-reports-standard" "")
+gnc_add_scheme_deprecated_module ("gnucash report standard-reports budget-balance-sheet" "gnucash reports standard budget-balance-sheet" "scm-reports-standard" "")
+gnc_add_scheme_deprecated_module ("gnucash report standard-reports budget-barchart" "gnucash reports standard budget-barchart" "scm-reports-standard" "")
+gnc_add_scheme_deprecated_module ("gnucash report standard-reports budget-flow" "gnucash reports standard budget-flow" "scm-reports-standard" "")
+gnc_add_scheme_deprecated_module ("gnucash report standard-reports budget" "gnucash reports standard budget" "scm-reports-standard" "")
+gnc_add_scheme_deprecated_module ("gnucash report standard-reports budget-income-statement" "gnucash reports standard budget-income-statement" "scm-reports-standard" "")
+gnc_add_scheme_deprecated_module ("gnucash report standard-reports cashflow-barchart" "gnucash reports standard cashflow-barchart" "scm-reports-standard" "")
+gnc_add_scheme_deprecated_module ("gnucash report standard-reports cash-flow" "gnucash reports standard cash-flow" "scm-reports-standard" "")
+gnc_add_scheme_deprecated_module ("gnucash report standard-reports category-barchart" "gnucash reports standard category-barchart" "scm-reports-standard" "")
+gnc_add_scheme_deprecated_module ("gnucash report customer-summary" "gnucash reports standard customer-summary" "scm-reports-standard" "")
+gnc_add_scheme_deprecated_module ("gnucash report welcome-to-gnucash" "gnucash reports standard dashboard" "scm-reports-standard" "")
+gnc_add_scheme_deprecated_module ("gnucash report standard-reports equity-statement" "gnucash reports standard equity-statement" "scm-reports-standard" "")
+gnc_add_scheme_deprecated_module ("gnucash report standard-reports general-journal" "gnucash reports standard general-journal" "scm-reports-standard" "")
+gnc_add_scheme_deprecated_module ("gnucash report standard-reports general-ledger" "gnucash reports standard general-ledger" "scm-reports-standard" "")
+gnc_add_scheme_deprecated_module ("gnucash report standard-reports income-gst-statement" "gnucash reports standard income-gst-statement" "scm-reports-standard" "")
+gnc_add_scheme_deprecated_module ("gnucash report standard-reports income-statement" "gnucash reports standard income-statement" "scm-reports-standard" "")
+gnc_add_scheme_deprecated_module ("gnucash report invoice" "gnucash reports standard invoice" "scm-reports-standard" "")
+gnc_add_scheme_deprecated_module ("gnucash report job-report" "gnucash reports standard job-report" "scm-reports-standard" "")
+gnc_add_scheme_deprecated_module ("gnucash report standard-reports net-charts" "gnucash reports standard net-charts" "scm-reports-standard" "")
+gnc_add_scheme_deprecated_module ("gnucash report owner-report" "gnucash reports standard owner-report" "scm-reports-standard" "")
+gnc_add_scheme_deprecated_module ("gnucash report payables" "gnucash reports standard payables" "scm-reports-standard" "")
+gnc_add_scheme_deprecated_module ("gnucash report standard-reports portfolio" "gnucash reports standard portfolio" "scm-reports-standard" "")
+gnc_add_scheme_deprecated_module ("gnucash report standard-reports price-scatter" "gnucash reports standard price-scatter" "scm-reports-standard" "")
+gnc_add_scheme_deprecated_module ("gnucash report receipt" "gnucash reports standard receipt" "scm-reports-standard" "")
+gnc_add_scheme_deprecated_module ("gnucash report receivables" "gnucash reports standard receivables" "scm-reports-standard" "")
+gnc_add_scheme_deprecated_module ("gnucash report standard-reports reconcile-report" "gnucash reports standard reconcile-report" "scm-reports-standard" "")
+gnc_add_scheme_deprecated_module ("gnucash report standard-reports register" "gnucash reports standard register" "scm-reports-standard" "")
+gnc_add_scheme_deprecated_module ("gnucash report standard-reports sx-summary" "gnucash reports standard sx-summary" "scm-reports-standard" "")
+gnc_add_scheme_deprecated_module ("gnucash report taxinvoice" "gnucash reports standard taxinvoice" "scm-reports-standard" "")
+gnc_add_scheme_deprecated_module ("gnucash report standard-reports transaction" "gnucash reports standard transaction" "scm-reports-standard" "")
+gnc_add_scheme_deprecated_module ("gnucash report standard-reports trial-balance" "gnucash reports standard trial-balance" "scm-reports-standard" "")
+gnc_add_scheme_deprecated_module ("gnucash report view-column" "gnucash reports standard view-column" "scm-reports-standard" "")
+
 set_local_dist(reports_DIST_local CMakeLists.txt ${reports_SCHEME}
     ${reports_common_SCHEME} ${reports_standard_SCHEME} ${reports_example_SCHEME}
     ${reports_us_SCHEME} ${reports_de_DE_SCHEME})
diff --git a/gnucash/report/stylesheets/CMakeLists.txt b/gnucash/report/stylesheets/CMakeLists.txt
index 3a925cd44..cf049f830 100644
--- a/gnucash/report/stylesheets/CMakeLists.txt
+++ b/gnucash/report/stylesheets/CMakeLists.txt
@@ -24,6 +24,13 @@ gnc_add_scheme_targets(scm-report-stylesheets-1
   TRUE
 )
 
+# Module interfaces deprecated in 4.x, will be removed for 5.x
+gnc_add_scheme_deprecated_module ("gnucash report stylesheet-easy" "gnucash report stylesheets easy" "scm-report-stylesheets-1" "")
+gnc_add_scheme_deprecated_module ("gnucash report stylesheet-fancy" "gnucash report stylesheets fancy" "scm-report-stylesheets-1" "")
+gnc_add_scheme_deprecated_module ("gnucash report stylesheet-footer" "gnucash report stylesheets footer" "scm-report-stylesheets-1" "")
+gnc_add_scheme_deprecated_module ("gnucash report stylesheet-head-or-tail" "gnucash report stylesheets head-or-tail" "scm-report-stylesheets-1" "")
+gnc_add_scheme_deprecated_module ("gnucash report stylesheet-plain" "gnucash report stylesheets plain" "scm-report-stylesheets-1" "")
+
 add_custom_target(scm-report-stylesheets ALL DEPENDS scm-report-stylesheets-1)
 
 set_local_dist(stylesheets_DIST_local CMakeLists.txt ${stylesheets_SCHEME})
diff --git a/gnucash/report/test/CMakeLists.txt b/gnucash/report/test/CMakeLists.txt
index c6e28b5d9..a9ce3b81e 100644
--- a/gnucash/report/test/CMakeLists.txt
+++ b/gnucash/report/test/CMakeLists.txt
@@ -70,3 +70,6 @@ set_dist_list(test_report_DIST
   test-report-extras.scm
   test-link-module.c
 )
+
+# Module interfaces deprecated in 4.x, will be removed for 5.x
+gnc_add_scheme_deprecated_module ("tests test-report-system-extras" "tests test-report-extras" "scm-test-report" "")
diff --git a/libgnucash/app-utils/CMakeLists.txt b/libgnucash/app-utils/CMakeLists.txt
index aafc607ad..0cdd51c9b 100644
--- a/libgnucash/app-utils/CMakeLists.txt
+++ b/libgnucash/app-utils/CMakeLists.txt
@@ -194,6 +194,10 @@ gnc_add_scheme_targets(scm-app-utils-2
   FALSE
 )
 
+# Module interfaces deprecated in 4.x, will be removed for 5.x
+gnc_add_scheme_deprecated_module ("migrate-prefs" "" "" "")
+gnc_add_scheme_deprecated_module ("migrate-prefs-user" "" "" "")
+
 add_custom_target(scm-app-utils ALL DEPENDS scm-app-utils-2 scm-app-utils-1 scm-gettext)
 
 set_local_dist(app_utils_DIST_local
diff --git a/libgnucash/engine/test/CMakeLists.txt b/libgnucash/engine/test/CMakeLists.txt
index 4f784c9a7..6dac16aa1 100644
--- a/libgnucash/engine/test/CMakeLists.txt
+++ b/libgnucash/engine/test/CMakeLists.txt
@@ -241,6 +241,7 @@ if (HAVE_SRFI64)
     FALSE
     )
 
+  gnc_add_scheme_deprecated_module ("gnucash engine test srfi64-extras" "tests srfi64-extras" "scm-srfi64-extras" "")
 endif (HAVE_SRFI64)
 
 gnc_add_scheme_test_targets(scm-test-engine
@@ -253,6 +254,10 @@ gnc_add_scheme_test_targets(scm-test-engine
 add_dependencies(check scm-test-engine)
 gnc_add_scheme_tests("${engine_test_SCHEME}")
 
+# Module interfaces deprecated in 4.x, will be removed for 5.x
+gnc_add_scheme_deprecated_module ("gnucash engine test test-extras" "tests test-engine-extras" "scm-test-engine-extras" "")
+
+
 set(test_engine_SOURCES_DIST
         dummy.cpp
         gtest-gnc-int128.cpp
diff --git a/libgnucash/tax/us/CMakeLists.txt b/libgnucash/tax/us/CMakeLists.txt
index 7e0fd9bcc..cfaf810b6 100644
--- a/libgnucash/tax/us/CMakeLists.txt
+++ b/libgnucash/tax/us/CMakeLists.txt
@@ -57,6 +57,10 @@ gnc_add_scheme_targets(scm-tax-de_DE-2
   FALSE
   )
 
+# Module interfaces deprecated in 4.x, will be removed for 5.x
+gnc_add_scheme_deprecated_module ("gnucash tax de_DE" "gnucash tax-de_DE" "scm-tax-de_DE-2" "")
+gnc_add_scheme_deprecated_module ("gnucash tax us" "gnucash tax-us" "scm-tax-us-2" "")
+
 add_custom_target(scm-tax-us ALL DEPENDS scm-tax-us-1 scm-tax-us-2 scm-tax-de_DE-1 scm-tax-de_DE-2 )
 
 set_local_dist(tax_us_DIST_local CMakeLists.txt ${tax_us_SOURCES}

commit f39275be3254f559f1447b23521495316d59df70
Author: Geert Janssens <geert at kobaltwit.be>
Date:   Sat Jun 15 10:13:42 2019 +0200

    RptCleanup - Add cmake command to generated compat modules for deprecated guile modules
    
    The function accepts the name of a deprecated module and optionally a
    replacement module.
    With that info it will generate a stub guile module that
    - will be installed in the gnucash guile load path
    - emits a deprecation warning when the old module is used
    - if a replacement module is given, will automatically load that module instead
    
    This allows us to gently deprecate complete guile modules without
    the burden of manually maintaining their module files.

diff --git a/common/cmake_modules/GncAddSchemeTargets.cmake b/common/cmake_modules/GncAddSchemeTargets.cmake
index 5d61086d4..7c03203f6 100644
--- a/common/cmake_modules/GncAddSchemeTargets.cmake
+++ b/common/cmake_modules/GncAddSchemeTargets.cmake
@@ -95,10 +95,12 @@ macro(find_guile_dirs)
             "{GNC_HOME}/${GUILE_REL_UNIX_LIBDIR}"
             "{GNC_HOME}/${GUILE_REL_UNIX_SITEDIR}"
             "{GNC_HOME}/${GUILE_REL_UNIX_TOP_SITEDIR}"
+            "{GNC_HOME}/${GUILE_REL_UNIX_SITEDIR}/gnucash/deprecated" # Path to gnucash' deprecated modules
             "{GNC_HOME}/${GUILE_REL_UNIX_DATADIR}")
 
     set (GNC_GUILE_LOAD_COMPILED_PATH
             "{GNC_HOME}/${GUILE_REL_UNIX_CCACHEDIR}"
+            "{GNC_HOME}/${GUILE_REL_UNIX_CCACHEDIR}/gnucash/deprecated"
             "{GNC_HOME}/${GUILE_REL_UNIX_SITECCACHEDIR}")
 endmacro(find_guile_dirs)
 
@@ -154,7 +156,7 @@ function(make_scheme_targets _TARGET _SOURCE_FILES _OUTPUT_DIR _GUILE_DEPENDS
   endif(MAKE_LINKS)
 
   # Construct the guile source and compiled load paths
-  set(_GUILE_LOAD_PATH "${current_srcdir}" "${current_bindir}")
+  set(_GUILE_LOAD_PATH "${current_srcdir}" "${current_bindir}" "${current_bindir}/deprecated")
   set(_GUILE_LOAD_COMPILED_PATH "${current_bindir}")
   # VERSION_GREATER_EQUAL introduced in CMake 3.7.
   if(MINGW64 AND (${GUILE_EFFECTIVE_VERSION} VERSION_GREATER 2.2 OR
@@ -164,9 +166,10 @@ function(make_scheme_targets _TARGET _SOURCE_FILES _OUTPUT_DIR _GUILE_DEPENDS
     list(APPEND _GUILE_LOAD_PATH ${guile_load_path})
     list(APPEND _GUILE_LOAD_COMPILED_PATH ${guile_load_compiled_path})
   endif()
-  set(_GUILE_CACHE_DIR ${CMAKE_BINARY_DIR}/${GUILE_REL_UNIX_SITECCACHEDIR})
+  set(_GUILE_CACHE_DIR "${CMAKE_BINARY_DIR}/${GUILE_REL_UNIX_SITECCACHEDIR}")
   list(APPEND _GUILE_LOAD_PATH "${CMAKE_BINARY_DIR}/${GUILE_REL_UNIX_SITEDIR}")
-  list(APPEND _GUILE_LOAD_COMPILED_PATH ${_GUILE_CACHE_DIR})
+  list(APPEND _GUILE_LOAD_COMPILED_PATH ${_GUILE_CACHE_DIR}
+              "${CMAKE_BINARY_DIR}/${GUILE_REL_UNIX_SITECCACHEDIR}/gnucash/deprecated")
 
   set(_TARGET_FILES "")
 
@@ -253,3 +256,68 @@ function(gnc_add_scheme_test_targets _TARGET _SOURCE_FILES _OUTPUT_DIR _GUILE_DE
                       "${_GUILE_DEPENDS}" "${MAKE_LINKS}")
   add_dependencies(check ${_TARGET})
 endfunction(gnc_add_scheme_test_targets)
+
+# Function to write boilerplate code for deprecated guile modules
+# All but the _OLDMOD parameter are optional
+# It will emit a deprecation warning and if _NEWMOD is also given
+# that module will be loaded instead.
+# If _NEWMOD is given, _DEPENDS should be set to the target for which
+# that module is a source file.
+# For example module (gnucash reports standard transaction)
+# is defined in transaction.scm, which is a source file for
+# cmake target scm-reports-standard so that should be set as _DEPENDS.
+
+# The function expects module names in the form "gnucash mod parts"
+# If _DEPMSG is left blank, the module will emit a generic message,
+# otherswise _DEPMSG will be emitted.
+function(gnc_add_scheme_deprecated_module _OLDMOD _NEWMOD _DEPENDS _DEPMSG)
+    string(STRIP _OLDMOD "${_OLDMOD}")
+    string(REPLACE " " "-" _TARGET ${_OLDMOD})
+    set(_TARGET "scm-deprecated-${_TARGET}")
+
+    string(REPLACE " " ";" MODPARTS "${_OLDMOD}")
+    list(GET MODPARTS -1 DEPFILENAME)
+    set(SOURCEFILE "${CMAKE_CURRENT_BINARY_DIR}/deprecated/${DEPFILENAME}.scm")
+
+    string(FIND "${_OLDMOD}" ${DEPFILENAME} POS REVERSE)
+    if (${POS} LESS 2)
+        set(MODPATH "gnucash/deprecated")
+    else()
+        list(REMOVE_AT MODPARTS -1)
+        string(REPLACE ";" "/" MODPATH "${MODPARTS}")
+        set(MODPATH "gnucash/deprecated/${MODPATH}")
+    endif()
+
+    set(DEPPREFIX "* WARN <gnc-guile-deprecation> *: ")
+    if (_DEPMSG)
+        set(DEPWARNING "(issue-deprecation-warning \"${DEPPREFIX}${_DEPMSG}\")")
+    else()
+        set(DEPWARNING
+            "(issue-deprecation-warning \"${DEPPREFIX}Module '(${_OLDMOD})' has been deprecated and will be removed in the future.\")")
+        if (_NEWMOD)
+            set(DEPWARNING "${DEPWARNING}
+                (issue-deprecation-warning \"${DEPPREFIX}Use module '(${_NEWMOD})' instead.\")")
+        endif()
+    endif()
+
+    # Write the stub file
+    file(WRITE ${SOURCEFILE} "
+;; ${DEPFILENAME}.scm
+;; Compatibility module for deprecated (${_OLDMOD}).
+;; This file is autogenerated, do not modify by hand.
+
+(define-module (${_OLDMOD}))
+
+${DEPWARNING}
+")
+
+    if (_NEWMOD)
+        file(APPEND ${SOURCEFILE} "
+(use-modules (${_NEWMOD}))
+
+(let ((i (module-public-interface (current-module))))
+     (module-use! i (resolve-interface '(${_NEWMOD}))))")
+    endif()
+
+    gnc_add_scheme_targets("${_TARGET}" "${SOURCEFILE}" "${MODPATH}" "${_DEPENDS}" FALSE)
+endfunction(gnc_add_scheme_deprecated_module)
diff --git a/common/cmake_modules/GncAddTest.cmake b/common/cmake_modules/GncAddTest.cmake
index 17857c4fe..c00c8292e 100644
--- a/common/cmake_modules/GncAddTest.cmake
+++ b/common/cmake_modules/GncAddTest.cmake
@@ -31,17 +31,20 @@ function(get_guile_env)
   list(APPEND env "GNC_MODULE_PATH=${_GNC_MODULE_PATH}")
   list(APPEND env "GUILE=${GUILE_EXECUTABLE}")
 
-  if (NOT WIN32)
-      list(APPEND env "GUILE_LOAD_COMPILED_PATH=${CMAKE_BINARY_DIR}/${GUILE_REL_SITECCACHEDIR}:${CMAKE_BINARY_DIR}/${GUILE_REL_SITECCACHEDIR}/tests")
-  endif()
   set(guile_load_paths "")
-  list(APPEND guile_load_paths ${CMAKE_CURRENT_SOURCE_DIR}/mod-foo)
-  list(APPEND guile_load_paths ${CMAKE_CURRENT_SOURCE_DIR}/mod-bar)
-  list(APPEND guile_load_paths ${CMAKE_CURRENT_SOURCE_DIR}/mod-baz)
-  if (WIN32)
-    list(APPEND guile_load_paths ${CMAKE_BINARY_DIR}/share/gnucash/scm)
-  endif()
+  list(APPEND guile_load_paths "${CMAKE_CURRENT_SOURCE_DIR}/mod-foo")
+  list(APPEND guile_load_paths "${CMAKE_CURRENT_SOURCE_DIR}/mod-bar")
+  list(APPEND guile_load_paths "${CMAKE_CURRENT_SOURCE_DIR}/mod-baz")
+  #list(APPEND guile_load_paths "${CMAKE_BINARY_DIR}/${GUILE_REL_SITEDIR}")
+  list(APPEND guile_load_paths "${CMAKE_BINARY_DIR}/${GUILE_REL_SITEDIR}/gnucash/deprecated") # Path to gnucash' deprecated modules
   set(guile_load_path "${guile_load_paths}")
+
+  set(guile_load_compiled_paths "")
+  list(APPEND guile_load_compiled_paths "${CMAKE_BINARY_DIR}/${GUILE_REL_SITECCACHEDIR}")
+  list(APPEND guile_load_compiled_paths "${CMAKE_BINARY_DIR}/${GUILE_REL_SITECCACHEDIR}/gnucash/deprecated")
+  list(APPEND guile_load_compiled_paths "${CMAKE_BINARY_DIR}/${GUILE_REL_SITECCACHEDIR}/tests")
+  set(guile_load_compiled_path "${guile_load_compiled_paths}")
+
   if (MINGW64)
     set(new_path "")
     foreach(load_item ${guile_load_path})
@@ -49,13 +52,24 @@ function(get_guile_env)
       list(APPEND new_path ${load_item})
     endforeach(load_item)
     set(guile_load_path ${new_path})
+
+    set(new_path "")
+    foreach(load_item ${guile_load_compiled_path})
+      string(REGEX REPLACE "^([A-Za-z]):" "/\\1" load_item ${load_item})
+      list(APPEND new_path ${load_item})
+    endforeach(load_item)
+    set(guile_load_compiled_path ${new_path})
   endif (MINGW64)
   if (WIN32 AND NOT MINGW64)
-    string(REPLACE ";" "\\\\;" GUILE_LOAD_PATH "${guile_load_path}")
+      string(REPLACE ";" "\\\\;" GUILE_LOAD_PATH "${guile_load_path}")
+      string(REPLACE ";" "\\\\;" GUILE_LOAD_COMPILED_PATH "${guile_load_compiled_path}")
   else()
-    string(REPLACE ";" ":" GUILE_LOAD_PATH "${guile_load_path}")
+      string(REPLACE ";" ":" GUILE_LOAD_PATH "${guile_load_path}")
+      string(REPLACE ";" ":" GUILE_LOAD_COMPILED_PATH "${guile_load_compiled_path}")
   endif()
-  list(APPEND env GUILE_LOAD_PATH=${GUILE_LOAD_PATH})
+  list(APPEND env "GUILE_LOAD_PATH=${GUILE_LOAD_PATH}")
+  list(APPEND env "GUILE_LOAD_COMPILED_PATH=${GUILE_LOAD_COMPILED_PATH}")
+  list(APPEND env "GUILE_WARN_DEPRECATED=detailed")
   set(GUILE_ENV ${env} PARENT_SCOPE)
 endfunction()
 
diff --git a/libgnucash/scm/test/CMakeLists.txt b/libgnucash/scm/test/CMakeLists.txt
index 05105a25d..9896d8150 100644
--- a/libgnucash/scm/test/CMakeLists.txt
+++ b/libgnucash/scm/test/CMakeLists.txt
@@ -1,5 +1,6 @@
 set(scm_test_SCHEME
   test-libgnucash-scm-utilities.scm
+  test-module-deprecation.scm
   )
 
 set(GUILE_DEPENDS
@@ -25,3 +26,7 @@ set_dist_list(test_scm_DIST
   CMakeLists.txt
   ${scm_test_SCHEME}
   )
+
+# Define two imaginary deprecated guile modules to test the compat file generation code
+gnc_add_scheme_deprecated_module ("gnucash deprecated-module" "" "" "")
+gnc_add_scheme_deprecated_module ("gnucash superseded-module" "gnucash utilities" "scm-scm" "")
diff --git a/libgnucash/scm/test/test-module-deprecation.scm b/libgnucash/scm/test/test-module-deprecation.scm
new file mode 100644
index 000000000..a115a6f99
--- /dev/null
+++ b/libgnucash/scm/test/test-module-deprecation.scm
@@ -0,0 +1,12 @@
+(use-modules (srfi srfi-64))
+(use-modules (tests srfi64-extras))
+
+(define (run-test)
+(test-runner-factory gnc:test-runner)
+(test-begin "test gnc-guile module deprecation")
+(test-read-eval-string "(use-modules (gnucash deprecated-module))")
+(test-end "test gnc-guile module deprecation")
+
+(test-begin "test gnc-guile module deprecation with replacement module")
+(test-read-eval-string "(begin (use-modules (gnucash superseded-module))(gnc:warn \"Successfully redirected to replacement module\"))")
+(test-end "test gnc-guile module deprecation with replacement module"))

commit 528bbff8dac1ef0b813081b4371cbb39017c479e
Author: Geert Janssens <geert at kobaltwit.be>
Date:   Fri Jun 14 17:43:52 2019 +0200

    RptCleanup - use generic report loader for locale-specific reports
    
    This requires a bit glue code to determine which locale we're interested in.
    Advantage: another gnc-module dropped (gncmod-locale-specific).

diff --git a/gnucash/gnucash-bin.c b/gnucash/gnucash-bin.c
index ff2812068..0199ddf96 100644
--- a/gnucash/gnucash-bin.c
+++ b/gnucash/gnucash-bin.c
@@ -503,7 +503,6 @@ load_gnucash_modules()
         { "gnucash/import-export/bi-import", 0, TRUE},
         { "gnucash/import-export/customer-import", 0, TRUE},
         { "gnucash/report", 0, FALSE },
-        { "gnucash/report/locale-specific", 0, FALSE },
         { "gnucash/python", 0, TRUE },
     };
 
diff --git a/gnucash/report/reports/CMakeLists.txt b/gnucash/report/reports/CMakeLists.txt
index e1c7045d4..79431b2aa 100644
--- a/gnucash/report/reports/CMakeLists.txt
+++ b/gnucash/report/reports/CMakeLists.txt
@@ -1,5 +1,4 @@
 
-add_subdirectory(locale-specific)
 add_subdirectory(standard/test)
 add_subdirectory(support)
 
@@ -60,6 +59,13 @@ set(reports_example_SCHEME
   example/welcome-to-gnucash.scm
 )
 
+set(reports_us_SCHEME
+  locale-specific/us/taxtxf.scm
+)
+
+set(reports_de_DE_SCHEME
+  locale-specific/de_DE/taxtxf.scm
+)
 
 set(scm_rpts_GUILE_DEPENDS
   gncmod-html
@@ -83,6 +89,18 @@ set(scm_rpt_example_GUILE_DEPENDS
   scm-report
   )
 
+set(scm_rpt_locale_specific_GUILE_DEPENDS
+  gncmod-html
+  scm-core-utils
+  scm-gettext
+  scm-gnc-module
+  scm-scm
+  scm-test-core
+  scm-tax-us
+  scm-report
+  scm-gnome-utils
+  )
+
 set(scm_rpt_std_GUILE_DEPENDS
   ${scm_rpts_GUILE_DEPENDS}
   scm-app-utils
@@ -112,7 +130,6 @@ gnc_add_scheme_targets(scm-reports-standard
   TRUE
 )
 
-
 gnc_add_scheme_targets(scm-reports-example
   "${reports_example_SCHEME}"
   "gnucash/reports/example"
@@ -120,14 +137,30 @@ gnc_add_scheme_targets(scm-reports-example
   TRUE
 )
 
+gnc_add_scheme_targets(scm-reports-us
+  "${reports_us_SCHEME}"
+  "gnucash/reports/locale-specific/us"
+  "${scm_rpt_locale_specific_GUILE_DEPENDS}"
+  TRUE
+)
+
+gnc_add_scheme_targets(scm-reports-de_DE
+  "${reports_de_DE_SCHEME}"
+  "gnucash/reports/locale-specific/de_DE"
+  "${scm_rpt_locale_specific_GUILE_DEPENDS}"
+  TRUE
+)
+
 add_custom_target(scm-reports ALL DEPENDS
     scm-reports-standard
     scm-reports-example
     scm-reports-common
     scm-rpt-reports
-    scm-reports-locale-specific)
+    scm-reports-us
+    scm-reports-de_DE)
 
 set_local_dist(reports_DIST_local CMakeLists.txt ${reports_SCHEME}
-    ${reports_common_SCHEME} ${reports_standard_SCHEME} ${reports_example_SCHEME})
-set(reports_DIST ${reports_DIST_local} ${reports_locale_specific_DIST}
-    ${reports_support_DIST} ${test_reports_standard_DIST} PARENT_SCOPE)
+    ${reports_common_SCHEME} ${reports_standard_SCHEME} ${reports_example_SCHEME}
+    ${reports_us_SCHEME} ${reports_de_DE_SCHEME})
+set(reports_DIST ${reports_DIST_local} ${reports_support_DIST}
+    ${test_reports_standard_DIST} PARENT_SCOPE)
diff --git a/gnucash/report/reports/locale-specific/CMakeLists.txt b/gnucash/report/reports/locale-specific/CMakeLists.txt
deleted file mode 100644
index eb6f2e77b..000000000
--- a/gnucash/report/reports/locale-specific/CMakeLists.txt
+++ /dev/null
@@ -1,53 +0,0 @@
-add_subdirectory(test)
-
-set(locale_specific_SOURCES
-  gncmod-locale-specific.c
-)
-
-add_library(gncmod-locale-specific ${locale_specific_SOURCES})
-
-target_link_libraries(gncmod-locale-specific gnc-module gncmod-app-utils gncmod-gnome-utils
-                         ${GUILE_LDFLAGS} ${GLIB2_LDFLAGS})
-
-target_compile_definitions(gncmod-locale-specific PRIVATE -DG_LOG_DOMAIN=\"gnc.report.locale\")
-
-
-if (APPLE)
-  set_target_properties (gncmod-locale-specific PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/gnucash")
-endif()
-
-install(TARGETS gncmod-locale-specific
-  LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash
-  ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash
-  RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
-# No headers to install
-
-# Scheme
-
-set(gncmod_locale_reports_SCHEME taxtxf.scm taxtxf-de_DE.scm)
-
-set(GUILE_DEPENDS
-  gncmod-html
-  scm-core-utils
-  scm-gettext
-  scm-gnc-module
-  scm-scm
-  scm-test-core
-  scm-tax-us
-  scm-report
-  scm-gnome-utils
-  )
-
-gnc_add_scheme_targets(scm-reports-locale-specific-1
-  "${gncmod_locale_reports_SCHEME}"
-  gnucash/reports/locale-specific
-  "${GUILE_DEPENDS}"
-  FALSE
-)
-
-add_custom_target(scm-reports-locale-specific ALL DEPENDS scm-reports-locale-specific-1)
-
-set_local_dist(reports_locale_specific_DIST_local CMakeLists.txt
-        ${locale_specific_SOURCES} ${gncmod_locale_reports_SCHEME})
-
-set(reports_locale_specific_DIST ${reports_locale_specific_DIST_local} ${test_locale_specific_DIST} PARENT_SCOPE)
diff --git a/gnucash/report/reports/locale-specific/taxtxf-de_DE.scm b/gnucash/report/reports/locale-specific/de_DE/taxtxf.scm
similarity index 99%
rename from gnucash/report/reports/locale-specific/taxtxf-de_DE.scm
rename to gnucash/report/reports/locale-specific/de_DE/taxtxf.scm
index 187dba7e0..4382542aa 100644
--- a/gnucash/report/reports/locale-specific/taxtxf-de_DE.scm
+++ b/gnucash/report/reports/locale-specific/de_DE/taxtxf.scm
@@ -66,7 +66,7 @@
 
 ;; depends must be outside module scope -- and should eventually go away.
 
-(define-module (gnucash reports locale-specific taxtxf-de_DE))
+(define-module (gnucash reports locale-specific de_DE taxtxf))
 (use-modules (gnucash utilities)) 
 (use-modules (srfi srfi-1))
 (use-modules (gnucash core-utils)) ; for gnc:version
diff --git a/gnucash/report/reports/locale-specific/gncmod-locale-specific.c b/gnucash/report/reports/locale-specific/gncmod-locale-specific.c
deleted file mode 100644
index 6314beee7..000000000
--- a/gnucash/report/reports/locale-specific/gncmod-locale-specific.c
+++ /dev/null
@@ -1,119 +0,0 @@
-/*********************************************************************
- * gncmod-locale-reports.c
- * module definition/initialization for the locale specific reports
- *
- * Copyright (c) 2001 Linux Developers Group, Inc.
- *********************************************************************/
-/********************************************************************\
- * This program is free software; you can redistribute it and/or    *
- * modify it under the terms of the GNU General Public License as   *
- * published by the Free Software Foundation; either version 2 of   *
- * the License, or (at your option) any later version.              *
- *                                                                  *
- * This program 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 General Public License for more details.                     *
- *                                                                  *
- * You should have received a copy of the GNU General Public License*
- * along with this program; if not, contact:                        *
- *                                                                  *
- * Free Software Foundation           Voice:  +1-617-542-5942       *
- * 51 Franklin Street, Fifth Floor    Fax:    +1-617-542-2652       *
- * Boston, MA  02110-1301,  USA       gnu at gnu.org                   *
- *                                                                  *
-\********************************************************************/
-
-
-#include <config.h>
-#include <string.h>
-#include <locale.h>
-#include <gmodule.h>
-#include <libguile.h>
-
-#include "gnc-module.h"
-#include "gnc-module-api.h"
-
-GNC_MODULE_API_DECL(libgncmod_locale_specific)
-
-/* version of the gnc module system interface we require */
-int libgncmod_locale_specific_gnc_module_system_interface = 0;
-
-/* module versioning uses libtool semantics. */
-int libgncmod_locale_specific_gnc_module_current  = 0;
-int libgncmod_locale_specific_gnc_module_revision = 0;
-int libgncmod_locale_specific_gnc_module_age      = 0;
-
-
-char *
-libgncmod_locale_specific_gnc_module_path(void)
-{
-    /* const char *thislocale = setlocale(LC_ALL, NULL);
-    if (strncmp(thislocale, "de_DE", 5) == 0)
-      return g_strdup("gnucash/report/locale-specific/de_DE");
-      else */
-    return g_strdup("gnucash/report/locale-specific");
-}
-
-char *
-libgncmod_locale_specific_gnc_module_description(void)
-{
-    return g_strdup("US income tax reports and related material");
-}
-
-int
-libgncmod_locale_specific_gnc_module_init(int refcount)
-{
-    const gchar *tax_module, *report_taxtxf;
-    /* load the tax info */
-    /* This is a very simple hack that loads the (new, special) German
-       tax definition file in a German locale, or (default) loads the
-       US tax file. */
-# ifdef G_OS_WIN32
-    gchar *thislocale = g_win32_getlocale();
-    gboolean is_de_DE = (strncmp(thislocale, "de_DE", 5) == 0);
-    g_free(thislocale);
-# else /* !G_OS_WIN32 */
-    const char *thislocale = setlocale(LC_ALL, NULL);
-    gboolean is_de_DE = (strncmp(thislocale, "de_DE", 5) == 0);
-# endif /* G_OS_WIN32 */
-    if (is_de_DE)
-    {
-        tax_module = "gnucash/tax/de_DE";
-        report_taxtxf = "(use-modules (gnucash reports locale-specific taxtxf-de_DE))";
-    }
-    else
-    {
-        tax_module = "gnucash/tax/us";
-        report_taxtxf = "(use-modules (gnucash reports locale-specific taxtxf))";
-    }
-
-    /* The gchar* cast is only because the function declaration expects
-       a non-const string -- probably an api error. */
-    if (!gnc_module_load((gchar*)tax_module, 0))
-    {
-        return FALSE;
-    }
-
-    /* load the report system */
-    if (!gnc_module_load("gnucash/report", 0))
-    {
-        return FALSE;
-    }
-
-    /* load the report generation scheme code */
-    if (scm_c_eval_string(report_taxtxf)
-            == SCM_BOOL_F)
-    {
-        g_warning("failed to load %s\n", report_taxtxf);
-        return FALSE;
-    }
-
-    return TRUE;
-}
-
-int
-libgncmod_locale_specific_gnc_module_end(int refcount)
-{
-    return TRUE;
-}
diff --git a/gnucash/report/reports/locale-specific/test/CMakeLists.txt b/gnucash/report/reports/locale-specific/test/CMakeLists.txt
deleted file mode 100644
index 0b98812e3..000000000
--- a/gnucash/report/reports/locale-specific/test/CMakeLists.txt
+++ /dev/null
@@ -1,23 +0,0 @@
-set(LOCALE_SPECIFIC_US_TEST_INCLUDE_DIRS "")
-set(LOCALE_SPECIFIC_US_TEST_LIBS)
-
-gnc_add_test(test-link-module-report-locale-specific-us test-link-module.c
-  LOCALE_SPECIFIC_US_TEST_INCLUDE_DIRS LOCALE_SPECIFIC_US_TEST_LIBS
-)
-
-set(GUILE_DEPENDS
-  scm-app-utils
-  gnc-core-utils
-  gnc-module
-  gncmod-engine
-)
-
-gnc_add_scheme_test_targets(test-load-report-locale-specific-module
-  "test-load-report-locale-specific-module.scm"
-  "tests"
-  "${GUILE_DEPENDS}"
-  FALSE
-  )
-gnc_add_scheme_tests(test-load-report-locale-specific-module.scm)
-
-set_dist_list(test_locale_specific_DIST CMakeLists.txt test-link-module.c test-load-report-locale-specific-module.scm)
diff --git a/gnucash/report/reports/locale-specific/test/test-link-module.c b/gnucash/report/reports/locale-specific/test/test-link-module.c
deleted file mode 100644
index e1c54dcc5..000000000
--- a/gnucash/report/reports/locale-specific/test/test-link-module.c
+++ /dev/null
@@ -1,26 +0,0 @@
-/********************************************************************\
- * This program is free software; you can redistribute it and/or    *
- * modify it under the terms of the GNU General Public License as   *
- * published by the Free Software Foundation; either version 2 of   *
- * the License, or (at your option) any later version.              *
- *                                                                  *
- * This program 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 General Public License for more details.                     *
- *                                                                  *
- * You should have received a copy of the GNU General Public License*
- * along with this program; if not, contact:                        *
- *                                                                  *
- * Free Software Foundation           Voice:  +1-617-542-5942       *
- * 51 Franklin Street, Fifth Floor    Fax:    +1-617-542-2652       *
- * Boston, MA  02110-1301,  USA       gnu at gnu.org                   *
- *                                                                  *
-\********************************************************************/
-
-int
-main(int argc, char ** argv)
-{
-    return 0;
-}
-
diff --git a/gnucash/report/reports/locale-specific/test/test-load-report-locale-specific-module.scm b/gnucash/report/reports/locale-specific/test/test-load-report-locale-specific-module.scm
deleted file mode 100755
index b8a65dda6..000000000
--- a/gnucash/report/reports/locale-specific/test/test-load-report-locale-specific-module.scm
+++ /dev/null
@@ -1,14 +0,0 @@
-(setenv "GNC_UNINSTALLED" "1")
-(use-modules (gnucash gnc-module))
-(gnc:module-system-init)
-
-(display "  testing US locale-specific report module load ... ")
-
-(display "  (done with precursor) ... ")
-(if (gnc:module-load "gnucash/tax/us" 0)
-    (begin 
-      (display "ok\n")
-      (exit 0))
-    (begin 
-      (display "failed\n")
-      (exit -1)))
diff --git a/gnucash/report/reports/locale-specific/taxtxf.scm b/gnucash/report/reports/locale-specific/us/taxtxf.scm
similarity index 99%
rename from gnucash/report/reports/locale-specific/taxtxf.scm
rename to gnucash/report/reports/locale-specific/us/taxtxf.scm
index 1f85eb73f..2e86b2ec7 100644
--- a/gnucash/report/reports/locale-specific/taxtxf.scm
+++ b/gnucash/report/reports/locale-specific/us/taxtxf.scm
@@ -98,7 +98,7 @@
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 
-(define-module (gnucash reports locale-specific taxtxf))
+(define-module (gnucash reports locale-specific us taxtxf))
 (use-modules (gnucash utilities)) 
 (use-modules (srfi srfi-1))
 (use-modules (gnucash gnc-module))
diff --git a/gnucash/report/reports/reports.scm b/gnucash/report/reports/reports.scm
index 8b5b2ac6c..dfd393869 100644
--- a/gnucash/report/reports/reports.scm
+++ b/gnucash/report/reports/reports.scm
@@ -37,16 +37,17 @@
 (export gnc:receivables-report-create)
 (export gnc:owner-report-create)
 
-;(re-export payables-report-create-internal
-;receivables-report-create-internal
-;owner-report-create)
-
 (define report-dirs (list
-    '(gnucash reports standard) ; base directory for standard reports included in gnucash
-    '(gnucash reports example)  ; base directory for example reports included in gnucash
+    '(gnucash reports standard) ; prefix for standard reports included in gnucash
+    '(gnucash reports example)  ; rexample for example reports included in gnucash
 ))
 
-(report-module-loader report-dirs)
+; Determine which locale-specific prefix to add to the list above
+; and then load all reports found in the given prefixes
+(let* ((loc (gnc-locale-name))
+       (loc-spec (if (string-prefix? "de_DE" loc) 'de_DE 'us))
+       (all-dirs (append report-dirs (list (list 'gnucash 'reports 'locale-specific loc-spec)))))
+      (report-module-loader all-dirs))
 
 (use-modules (gnucash gnc-module))
 (gnc:module-load "gnucash/engine" 0)
diff --git a/libgnucash/core-utils/core-utils.i b/libgnucash/core-utils/core-utils.i
index a2b618934..234cb0489 100644
--- a/libgnucash/core-utils/core-utils.i
+++ b/libgnucash/core-utils/core-utils.i
@@ -95,6 +95,9 @@ gchar * gnc_locale_to_utf8(const gchar *);
 
 const char * gnc_locale_default_iso_currency_code (void);
 
+%newobject gnc_locale_name;
+gchar *gnc_locale_name (void);
+
 #if defined(SWIGGUILE)
 %rename ("gnc-utf8?") wrap_gnc_utf8_validate;
 %inline %{
diff --git a/libgnucash/core-utils/core-utils.scm b/libgnucash/core-utils/core-utils.scm
index 95716d732..302e6bf31 100644
--- a/libgnucash/core-utils/core-utils.scm
+++ b/libgnucash/core-utils/core-utils.scm
@@ -53,6 +53,7 @@
 (re-export gnc-scm-log-msg)
 (re-export gnc-scm-log-debug)
 (re-export gnc-locale-default-iso-currency-code)
+(re-export gnc-locale-name)
 
 (re-export gnc-prefs-set-bool)
 (re-export gnc-prefs-set-int)
diff --git a/libgnucash/core-utils/gnc-locale-utils.c b/libgnucash/core-utils/gnc-locale-utils.c
index 7af53593b..033122a47 100644
--- a/libgnucash/core-utils/gnc-locale-utils.c
+++ b/libgnucash/core-utils/gnc-locale-utils.c
@@ -150,3 +150,13 @@ gnc_locale_decimal_places (void)
 
     return places;
 }
+
+gchar *gnc_locale_name (void)
+{
+# ifdef G_OS_WIN32
+    return g_win32_getlocale();
+# else /* !G_OS_WIN32 */
+    return g_strdup (setlocale(LC_ALL, NULL));
+# endif /* G_OS_WIN32 */
+
+}
diff --git a/libgnucash/core-utils/gnc-locale-utils.h b/libgnucash/core-utils/gnc-locale-utils.h
index 5d9063865..b87f3b740 100644
--- a/libgnucash/core-utils/gnc-locale-utils.h
+++ b/libgnucash/core-utils/gnc-locale-utils.h
@@ -37,4 +37,8 @@ const char * gnc_locale_default_iso_currency_code (void);
 /* Returns the number of decimal place to print in the current locale */
 int gnc_locale_decimal_places (void);
 
+/* Return the name of the currently set locale.
+ * The returned string should be freed by the caller. */
+gchar *gnc_locale_name (void);
+
 #endif /* GNC_LOCALE_UTILS_H */
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 3a47e8622..430c465e4 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -448,9 +448,8 @@ gnucash/report/reports/example/daily-reports.scm
 gnucash/report/reports/example/hello-world.scm
 gnucash/report/reports/example/sample-graphs.scm
 gnucash/report/reports/example/welcome-to-gnucash.scm
-gnucash/report/reports/locale-specific/gncmod-locale-specific.c
-gnucash/report/reports/locale-specific/taxtxf-de_DE.scm
-gnucash/report/reports/locale-specific/taxtxf.scm
+gnucash/report/reports/locale-specific/de_DE/taxtxf.scm
+gnucash/report/reports/locale-specific/us/taxtxf.scm
 gnucash/report/reports/reports.scm
 gnucash/report/reports/standard/account-piecharts.scm
 gnucash/report/reports/standard/account-summary.scm

commit 0a8e0d2928be18ab2ed4be7a1a9554fc4c0fa286
Author: Geert Janssens <geert at kobaltwit.be>
Date:   Fri Jun 14 15:38:04 2019 +0200

    RptCleanup - install eguile report support files in subdirectories relative to the reports module

diff --git a/gnucash/report/eguile-utilities.scm b/gnucash/report/eguile-utilities.scm
index 341760d48..b55a39fa1 100644
--- a/gnucash/report/eguile-utilities.scm
+++ b/gnucash/report/eguile-utilities.scm
@@ -67,21 +67,50 @@
       '()
       (cadr l))))
 
+; deprecated - use find-stylesheet or find-template instead
 (define-public (find-file fname)
   ;; Find the file 'fname', and return its full path.
-  ;; First look in the user's .gnucash directory.
+  ;; First look in the user's .config/gnucash directory.
   ;; Then look in Gnucash's standard report directory.
   ;; If no file is found, returns just 'fname' for use in error messages.
-  ;; Note: this has been tested on Linux and Windows Vista so far...
-  (let* ((userpath (gnc-build-userdata-path fname))
-         (syspath  (gnc-build-report-path fname)))
+  (let* ((stylesheetpath (find-stylesheet fname))
+         (templatepath  (find-template fname)))
     ; make sure there's a trailing delimiter
-      (if (access? userpath R_OK)
-        userpath
-        (if (access? syspath R_OK)
-          syspath
+      (issue-deprecation-warning "find-file is deprecated. Please use find-stylesheet or find-template instead.")
+      (if (access? stylesheetpath R_OK)
+        stylesheetpath
+        (if (access? templatepath R_OK)
+          templatepath
           fname))))
 
+(define (find-internal ftype fname)
+  ;; Find the file fname', and return its full path.
+  ;; First look in the user's .config/gnucash directory.
+  ;; Then look in Gnucash' gnucash/reports/'ftype' directory.
+  ;; If no file is found, returns just 'fname' for use in error messages.
+  (let* ((userpath (gnc-build-userdata-path fname))
+         (frelpath (string-join (list (symbol->string ftype) fname) "/"))
+         (syspath  (gnc-build-reports-path frelpath)))
+        (if (access? userpath R_OK)
+          userpath
+          (if (access? syspath R_OK)
+            syspath
+            fname))))
+
+(define-public (find-stylesheet fname)
+  ;; Find the stylesheet 'fname', and return its full path.
+  ;; First look in the user's .config/gnucash directory.
+  ;; Then look in Gnucash' gnucash/reports/stylesheets directory.
+  ;; If no file is found, returns just 'fname' for use in error messages.
+  (find-internal 'stylesheets fname))
+
+(define-public (find-template fname)
+  ;; Find the template 'ftype'/'fname', and return its full path.
+  ;; First look in the user's .config/gnucash directory.
+  ;; Then look in Gnucash' gnucash/reports/templates directory.
+  ;; If no file is found, returns just 'fname' for use in error messages.
+  (find-internal 'templates fname))
+
 ; Define syntax for more readable for loops (the built-in for-each requires an
 ; explicit lambda and has the list expression all the way at the end).
 (define-syntax for
diff --git a/gnucash/report/reports/standard/balsheet-eg.scm b/gnucash/report/reports/standard/balsheet-eg.scm
index be285d5f3..c32ccf245 100644
--- a/gnucash/report/reports/standard/balsheet-eg.scm
+++ b/gnucash/report/reports/standard/balsheet-eg.scm
@@ -386,9 +386,9 @@
          (opt-columns          (get-option display-page     optname-columns))
          (opt-font-family      (get-option display-page     optname-font-family))
          (opt-font-size        (get-option display-page     optname-font-size))
-         (opt-template-file    (find-file
+         (opt-template-file    (find-template
                                  (get-option display-page   optname-template-file)))
-         (opt-css-file         (find-file
+         (opt-css-file         (find-stylesheet
                                  (get-option display-page   optname-css-file)))
          (opt-flatten-depth    999); may get adjusted below
          (opt-neg-format       (get-option display-page     optname-neg-format))
diff --git a/gnucash/report/reports/standard/receipt.scm b/gnucash/report/reports/standard/receipt.scm
index 7abf85576..a8b065b20 100644
--- a/gnucash/report/reports/standard/receipt.scm
+++ b/gnucash/report/reports/standard/receipt.scm
@@ -208,9 +208,9 @@
   ; Get all the options
   (let* ((document                  (gnc:make-html-document))
          (opt-invoice               (opt-value generalpage  optname-invoice-number))
-         (opt-template-file         (find-file
+         (opt-template-file         (find-template
                                       (opt-value displaypage optname-template-file)))
-         (opt-css-file              (find-file
+         (opt-css-file              (find-stylesheet
                                       (opt-value displaypage optname-css-file)))
          (opt-heading-font          (font-name-to-style-info
                                       (opt-value displaypage optname-heading-font)))
diff --git a/gnucash/report/reports/standard/taxinvoice.scm b/gnucash/report/reports/standard/taxinvoice.scm
index b4f80b80c..4e7b292d8 100644
--- a/gnucash/report/reports/standard/taxinvoice.scm
+++ b/gnucash/report/reports/standard/taxinvoice.scm
@@ -256,9 +256,9 @@
   ; Get all the options
   (let* ((document                  (gnc:make-html-document))
          (opt-invoice               (opt-value gnc:pagename-general gnc:optname-invoice-number))
-         (opt-template-file         (find-file 
+         (opt-template-file         (find-template
                                       (opt-value displaypage optname-template-file)))
-         (opt-css-file              (find-file 
+         (opt-css-file              (find-stylesheet
                                       (opt-value displaypage optname-css-file)))
          (opt-heading-font          (font-name-to-style-info 
                                       (opt-value displaypage optname-heading-font)))
diff --git a/gnucash/report/reports/support/CMakeLists.txt b/gnucash/report/reports/support/CMakeLists.txt
index 1a9582de0..23a3d93e6 100644
--- a/gnucash/report/reports/support/CMakeLists.txt
+++ b/gnucash/report/reports/support/CMakeLists.txt
@@ -1,17 +1,25 @@
-set(support_DATA
-  taxinvoice.eguile.scm
+set(stylesheets_DATA
   taxinvoice.css
-  receipt.eguile.scm
   receipt.css
   balsheet-eg.css
+)
+
+install(FILES ${stylesheets_DATA}
+        DESTINATION ${CMAKE_INSTALL_PREFIX}/${GUILE_REL_SITEDIR}/gnucash/reports/stylesheets)
+
+set(templates_DATA
+  taxinvoice.eguile.scm
+  receipt.eguile.scm
   balsheet-eg.eguile.scm
 )
 
-install(FILES ${support_DATA} DESTINATION ${CMAKE_INSTALL_PREFIX}/${GUILE_REL_SITEDIR}/gnucash/report)
+install(FILES ${templates_DATA}
+        DESTINATION ${CMAKE_INSTALL_PREFIX}/${GUILE_REL_SITEDIR}/gnucash/reports/templates)
 
 set(support_EXTRA_DIST
   README
 )
 
-set_local_dist(reports_support_DIST_local CMakeLists.txt ${support_DATA} ${support_EXTRA_DIST})
+set_local_dist(reports_support_DIST_local CMakeLists.txt
+  ${stylesheets_DATA} ${templates_DATA} ${support_EXTRA_DIST})
 set(reports_support_DIST ${reports_support_DIST_local} PARENT_SCOPE)

commit 70393bc08ad02c4f32ed7b84e6143e621affee4b
Author: Geert Janssens <geert at kobaltwit.be>
Date:   Fri Jun 14 15:37:33 2019 +0200

    RptCleanup - install reports into their own toplevel module (gnucash reports)

diff --git a/.gitignore b/.gitignore
index fc9e97b99..f9ca4fde5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -175,7 +175,7 @@ gnucash/report/locale-specific/gnucash
 gnucash/report/locale-specific/test/test-link-module
 gnucash/report/gnucash
 gnucash/report/test/test-link-module
-gnucash/report/reports/gnucash
+gnucash/reports/gnucash
 gnucash/report/stylesheets/gnucash
 gnucash/report/utility-reports/gnucash
 swig-*.c
diff --git a/gnucash/gnome/gnc-plugin-report-system.c b/gnucash/gnome/gnc-plugin-report-system.c
index 94ebaff89..a9a5071d7 100644
--- a/gnucash/gnome/gnc-plugin-report-system.c
+++ b/gnucash/gnome/gnc-plugin-report-system.c
@@ -266,7 +266,7 @@ gnc_plugin_report_system_new (void)
     gnc_html_register_url_handler (URL_TYPE_REPORT, gnc_report_system_report_url_cb);
     gnc_html_register_url_handler (URL_TYPE_HELP, gnc_report_system_help_url_cb);
 
-    scm_c_use_module("gnucash report reports");
+    scm_c_use_module("gnucash reports");
     scm_c_use_module("gnucash report-menus");
     scm_c_eval_string("(gnc:report-menu-setup)");
 
diff --git a/gnucash/gnome/report-menus.scm b/gnucash/gnome/report-menus.scm
index f4e313bb0..3668a23d9 100644
--- a/gnucash/gnome/report-menus.scm
+++ b/gnucash/gnome/report-menus.scm
@@ -30,7 +30,7 @@
 (use-modules (gnucash gnc-module))
 (use-modules (gnucash gnome-utils))
 (use-modules (gnucash gettext))
-(use-modules (gnucash report reports standard dashboard))
+(use-modules (gnucash reports standard dashboard))
 
 (eval-when (compile load eval expand)
   (load-extension "libgnc-gnome" "scm_init_sw_gnome_module"))
diff --git a/gnucash/report/html-document.scm b/gnucash/report/html-document.scm
index 9b9b95b3f..58c73e92f 100644
--- a/gnucash/report/html-document.scm
+++ b/gnucash/report/html-document.scm
@@ -146,9 +146,10 @@
           (gnc:report-render-starting (gnc:html-document-title doc))
           (when headers?
             ;;This is the only place where <html> appears
-            ;;with the exception of 2 eguile report templates:
-            ;;./share/gnucash/scm/gnucash/report/reports/data/taxinvoice.eguile.scm:<html>
-            ;;./share/gnucash/scm/gnucash/report/reports/data/balsheet-eg.eguile.scm:<html>
+            ;;with the exception of 3 eguile report templates:
+            ;;<guile-sitedir>/gnucash/reports/data/taxinvoice.eguile.scm:<html>
+            ;;<guile-sitedir>/gnucash/reports/data/balsheet-eg.eguile.scm:<html>
+            ;;<guile-sitedir>/gnucash/reports/data/receipt.eguile.scm:<html>
 
             (push "<html>\n")
             (push "<head>\n")
diff --git a/gnucash/report/report.scm b/gnucash/report/report.scm
index 8e59f3241..0f4b5ae20 100644
--- a/gnucash/report/report.scm
+++ b/gnucash/report/report.scm
@@ -797,10 +797,10 @@
 ;; This assumes the modules are located on the file system in a
 ;; path matching the module prefix
 ;; For example passing
-;; '('(gnucash report stylesheets) '(gnucash report reports standard))
+;; '('(gnucash report stylesheets) '(gnucash reports standard))
 ;; will search for scm files in
 ;; - <gnc-guile-dir>/gnucash/report/stylesheets
-;; - <gnc-guile-dir>/gnucash/report/reports/standard
+;; - <gnc-guile-dir>/gnucash/reports/standard
 ;; and try to load them.
 ;; This function is non-recursive so it won't
 ;; descend in subdirectories.
diff --git a/gnucash/report/reports/CMakeLists.txt b/gnucash/report/reports/CMakeLists.txt
index 93722d319..e1c7045d4 100644
--- a/gnucash/report/reports/CMakeLists.txt
+++ b/gnucash/report/reports/CMakeLists.txt
@@ -93,21 +93,21 @@ set(scm_rpt_std_GUILE_DEPENDS
 
 gnc_add_scheme_targets(scm-rpt-reports
   "${reports_SCHEME}"
-  "gnucash/report"
+  "gnucash"
   "${scm_rpts_GUILE_DEPENDS}"
   TRUE
 )
 
 gnc_add_scheme_targets(scm-reports-common
   "${reports_common_SCHEME}"
-  "gnucash/report/reports"
+  "gnucash/reports"
   "scm-reports-common-links;scm-rpt-reports;${scm_rpt_std_GUILE_DEPENDS}"
   TRUE
 )
 
 gnc_add_scheme_targets(scm-reports-standard
   "${reports_standard_SCHEME}"
-  "gnucash/report/reports/standard"
+  "gnucash/reports/standard"
   "scm-rpt-reports;${scm_rpt_std_GUILE_DEPENDS}"
   TRUE
 )
@@ -115,7 +115,7 @@ gnc_add_scheme_targets(scm-reports-standard
 
 gnc_add_scheme_targets(scm-reports-example
   "${reports_example_SCHEME}"
-  "gnucash/report/reports/example"
+  "gnucash/reports/example"
   "${scm_rpt_example_GUILE_DEPENDS}"
   TRUE
 )
diff --git a/gnucash/report/reports/aging.scm b/gnucash/report/reports/aging.scm
index c9359d9c5..ca2b52d23 100644
--- a/gnucash/report/reports/aging.scm
+++ b/gnucash/report/reports/aging.scm
@@ -24,7 +24,7 @@
 ;;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
-(define-module (gnucash report reports aging))
+(define-module (gnucash reports aging))
 
 (use-modules (gnucash utilities))
 (use-modules (gnucash gnc-module))
diff --git a/gnucash/report/reports/example/average-balance.scm b/gnucash/report/reports/example/average-balance.scm
index 0ea2cb360..8c5b2d56f 100644
--- a/gnucash/report/reports/example/average-balance.scm
+++ b/gnucash/report/reports/example/average-balance.scm
@@ -26,7 +26,7 @@
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 
-(define-module (gnucash report reports example average-balance))
+(define-module (gnucash reports example average-balance))
 (use-modules (srfi srfi-1))
 (use-modules (gnucash utilities))
 (use-modules (gnucash gnc-module))
diff --git a/gnucash/report/reports/example/daily-reports.scm b/gnucash/report/reports/example/daily-reports.scm
index 18b90a09b..32692fcd5 100644
--- a/gnucash/report/reports/example/daily-reports.scm
+++ b/gnucash/report/reports/example/daily-reports.scm
@@ -25,7 +25,7 @@
 ;;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
-(define-module (gnucash report reports example daily-reports))
+(define-module (gnucash reports example daily-reports))
 
 (use-modules (gnucash utilities)) 
 (use-modules (srfi srfi-1))
diff --git a/gnucash/report/reports/example/hello-world.scm b/gnucash/report/reports/example/hello-world.scm
index f5fa1b2dc..2f5a03a5e 100644
--- a/gnucash/report/reports/example/hello-world.scm
+++ b/gnucash/report/reports/example/hello-world.scm
@@ -23,7 +23,7 @@
 ;; It illustrates the basic techniques used to create
 ;; new reports for GnuCash.
 
-(define-module (gnucash report reports example hello-world))
+(define-module (gnucash reports example hello-world))
 (use-modules (gnucash utilities)) 
 (use-modules (gnucash gnc-module))
 (use-modules (gnucash gettext))
diff --git a/gnucash/report/reports/example/sample-graphs.scm b/gnucash/report/reports/example/sample-graphs.scm
index aea7df59f..d942ae2e5 100644
--- a/gnucash/report/reports/example/sample-graphs.scm
+++ b/gnucash/report/reports/example/sample-graphs.scm
@@ -23,7 +23,7 @@
 ;; It illustrates the basic techniques used to create
 ;; new reports for GnuCash.
 
-(define-module (gnucash report reports example sample-graphs))
+(define-module (gnucash reports example sample-graphs))
 (use-modules (gnucash utilities)) 
 (use-modules (gnucash gnc-module))
 
diff --git a/gnucash/report/reports/example/welcome-to-gnucash.scm b/gnucash/report/reports/example/welcome-to-gnucash.scm
index 51790d755..05c589bb5 100644
--- a/gnucash/report/reports/example/welcome-to-gnucash.scm
+++ b/gnucash/report/reports/example/welcome-to-gnucash.scm
@@ -21,7 +21,7 @@
 ;; Boston, MA  02110-1301,  USA       gnu at gnu.org
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
-(define-module (gnucash report reports example welcome-to-gnucash))
+(define-module (gnucash reports example welcome-to-gnucash))
 
 (use-modules (gnucash utilities))
 (use-modules (gnucash core-utils)) ; for gnc:version
diff --git a/gnucash/report/reports/locale-specific/CMakeLists.txt b/gnucash/report/reports/locale-specific/CMakeLists.txt
index 5d53edecf..eb6f2e77b 100644
--- a/gnucash/report/reports/locale-specific/CMakeLists.txt
+++ b/gnucash/report/reports/locale-specific/CMakeLists.txt
@@ -40,7 +40,7 @@ set(GUILE_DEPENDS
 
 gnc_add_scheme_targets(scm-reports-locale-specific-1
   "${gncmod_locale_reports_SCHEME}"
-  gnucash/report/reports/locale-specific
+  gnucash/reports/locale-specific
   "${GUILE_DEPENDS}"
   FALSE
 )
diff --git a/gnucash/report/reports/locale-specific/gncmod-locale-specific.c b/gnucash/report/reports/locale-specific/gncmod-locale-specific.c
index c7bea0562..6314beee7 100644
--- a/gnucash/report/reports/locale-specific/gncmod-locale-specific.c
+++ b/gnucash/report/reports/locale-specific/gncmod-locale-specific.c
@@ -80,12 +80,12 @@ libgncmod_locale_specific_gnc_module_init(int refcount)
     if (is_de_DE)
     {
         tax_module = "gnucash/tax/de_DE";
-        report_taxtxf = "(use-modules (gnucash report reports locale-specific taxtxf-de_DE))";
+        report_taxtxf = "(use-modules (gnucash reports locale-specific taxtxf-de_DE))";
     }
     else
     {
         tax_module = "gnucash/tax/us";
-        report_taxtxf = "(use-modules (gnucash report reports locale-specific taxtxf))";
+        report_taxtxf = "(use-modules (gnucash reports locale-specific taxtxf))";
     }
 
     /* The gchar* cast is only because the function declaration expects
diff --git a/gnucash/report/reports/locale-specific/taxtxf-de_DE.scm b/gnucash/report/reports/locale-specific/taxtxf-de_DE.scm
index 4f28a2529..187dba7e0 100644
--- a/gnucash/report/reports/locale-specific/taxtxf-de_DE.scm
+++ b/gnucash/report/reports/locale-specific/taxtxf-de_DE.scm
@@ -66,7 +66,7 @@
 
 ;; depends must be outside module scope -- and should eventually go away.
 
-(define-module (gnucash report reports locale-specific taxtxf-de_DE))
+(define-module (gnucash reports locale-specific taxtxf-de_DE))
 (use-modules (gnucash utilities)) 
 (use-modules (srfi srfi-1))
 (use-modules (gnucash core-utils)) ; for gnc:version
diff --git a/gnucash/report/reports/locale-specific/taxtxf.scm b/gnucash/report/reports/locale-specific/taxtxf.scm
index 2b7904ce5..1f85eb73f 100644
--- a/gnucash/report/reports/locale-specific/taxtxf.scm
+++ b/gnucash/report/reports/locale-specific/taxtxf.scm
@@ -98,7 +98,7 @@
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 
-(define-module (gnucash report reports locale-specific taxtxf))
+(define-module (gnucash reports locale-specific taxtxf))
 (use-modules (gnucash utilities)) 
 (use-modules (srfi srfi-1))
 (use-modules (gnucash gnc-module))
diff --git a/gnucash/report/reports/reports.scm b/gnucash/report/reports/reports.scm
index 135633628..8b5b2ac6c 100644
--- a/gnucash/report/reports/reports.scm
+++ b/gnucash/report/reports/reports.scm
@@ -24,7 +24,7 @@
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 
-(define-module (gnucash report reports))
+(define-module (gnucash reports))
 (use-modules (srfi srfi-13))
 (use-modules (gnucash app-utils))
 (use-modules (gnucash core-utils))
@@ -42,8 +42,8 @@
 ;owner-report-create)
 
 (define report-dirs (list
-    '(gnucash report reports standard) ; base directory for standard reports included in gnucash
-    '(gnucash report reports example)  ; base directory for example reports included in gnucash
+    '(gnucash reports standard) ; base directory for standard reports included in gnucash
+    '(gnucash reports example)  ; base directory for example reports included in gnucash
 ))
 
 (report-module-loader report-dirs)
@@ -78,15 +78,15 @@
         0
         ))
 
-(use-modules (gnucash report reports standard payables))
+(use-modules (gnucash reports standard payables))
 (define (gnc:payables-report-create account title show-zeros?)
   (payables-report-create-internal account title show-zeros?))
 
-(use-modules (gnucash report reports standard receivables))
+(use-modules (gnucash reports standard receivables))
 (define (gnc:receivables-report-create account title show-zeros?)
   (receivables-report-create-internal account title show-zeros?))
 
-(use-modules (gnucash report reports standard owner-report))
+(use-modules (gnucash reports standard owner-report))
 (define (gnc:owner-report-create owner account)
   ; Figure out an account to use if nothing exists here.
   (if (null? account)
diff --git a/gnucash/report/reports/standard/account-piecharts.scm b/gnucash/report/reports/standard/account-piecharts.scm
index aeba46ca0..d5a958982 100644
--- a/gnucash/report/reports/standard/account-piecharts.scm
+++ b/gnucash/report/reports/standard/account-piecharts.scm
@@ -23,7 +23,7 @@
 ;;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
-(define-module (gnucash report reports standard account-piecharts))
+(define-module (gnucash reports standard account-piecharts))
 
 (use-modules (gnucash utilities)) 
 (use-modules (srfi srfi-1))
diff --git a/gnucash/report/reports/standard/account-summary.scm b/gnucash/report/reports/standard/account-summary.scm
index f26dd3fad..42ff587c7 100644
--- a/gnucash/report/reports/standard/account-summary.scm
+++ b/gnucash/report/reports/standard/account-summary.scm
@@ -48,7 +48,7 @@
 ;; Boston, MA  02110-1301,  USA       gnu at gnu.org
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
-(define-module (gnucash report reports standard account-summary))
+(define-module (gnucash reports standard account-summary))
 
 (use-modules (srfi srfi-1))
 (use-modules (gnucash utilities)) 
diff --git a/gnucash/report/reports/standard/advanced-portfolio.scm b/gnucash/report/reports/standard/advanced-portfolio.scm
index 9b4b37248..4e144fb13 100644
--- a/gnucash/report/reports/standard/advanced-portfolio.scm
+++ b/gnucash/report/reports/standard/advanced-portfolio.scm
@@ -25,7 +25,7 @@
 ;;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
-(define-module (gnucash report reports standard advanced-portfolio))
+(define-module (gnucash reports standard advanced-portfolio))
 
 (use-modules (gnucash utilities)) 
 (use-modules (srfi srfi-1))
diff --git a/gnucash/report/reports/standard/balance-forecast.scm b/gnucash/report/reports/standard/balance-forecast.scm
index 634524def..d796bd15d 100644
--- a/gnucash/report/reports/standard/balance-forecast.scm
+++ b/gnucash/report/reports/standard/balance-forecast.scm
@@ -23,7 +23,7 @@
 ;;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
-(define-module (gnucash report reports standard balance-forecast))
+(define-module (gnucash reports standard balance-forecast))
 
 (use-modules (gnucash gnc-module))
 (use-modules (gnucash gettext))
diff --git a/gnucash/report/reports/standard/balance-sheet.scm b/gnucash/report/reports/standard/balance-sheet.scm
index 9e4708150..bfbb0499e 100644
--- a/gnucash/report/reports/standard/balance-sheet.scm
+++ b/gnucash/report/reports/standard/balance-sheet.scm
@@ -62,7 +62,7 @@
 ;;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
-(define-module (gnucash report reports standard balance-sheet))
+(define-module (gnucash reports standard balance-sheet))
 (use-modules (gnucash utilities)) 
 (use-modules (gnucash gnc-module))
 (use-modules (gnucash gettext))
diff --git a/gnucash/report/reports/standard/balsheet-eg.scm b/gnucash/report/reports/standard/balsheet-eg.scm
index 6a18c7f33..be285d5f3 100644
--- a/gnucash/report/reports/standard/balsheet-eg.scm
+++ b/gnucash/report/reports/standard/balsheet-eg.scm
@@ -31,7 +31,7 @@
 ;;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
-(define-module (gnucash report reports standard balsheet-eg))
+(define-module (gnucash reports standard balsheet-eg))
 (use-modules (gnucash utilities))
 (use-modules (gnucash gnc-module))
 (use-modules (gnucash gettext))
diff --git a/gnucash/report/reports/standard/balsheet-pnl.scm b/gnucash/report/reports/standard/balsheet-pnl.scm
index 64514b038..d8deceacd 100644
--- a/gnucash/report/reports/standard/balsheet-pnl.scm
+++ b/gnucash/report/reports/standard/balsheet-pnl.scm
@@ -25,7 +25,7 @@
 ;;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
-(define-module (gnucash report reports standard balsheet-pnl))
+(define-module (gnucash reports standard balsheet-pnl))
 (use-modules (gnucash utilities))
 (use-modules (gnucash gnc-module))
 (use-modules (gnucash gettext))
diff --git a/gnucash/report/reports/standard/budget-balance-sheet.scm b/gnucash/report/reports/standard/budget-balance-sheet.scm
index 5aa05ecf6..87e74d5c3 100644
--- a/gnucash/report/reports/standard/budget-balance-sheet.scm
+++ b/gnucash/report/reports/standard/budget-balance-sheet.scm
@@ -28,7 +28,7 @@
 ;;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
-(define-module (gnucash report reports standard budget-balance-sheet))
+(define-module (gnucash reports standard budget-balance-sheet))
 (use-modules (gnucash utilities)) 
 (use-modules (gnucash gnc-module))
 (use-modules (gnucash gettext))
diff --git a/gnucash/report/reports/standard/budget-barchart.scm b/gnucash/report/reports/standard/budget-barchart.scm
index 0eb1d2c3c..5f33e4046 100644
--- a/gnucash/report/reports/standard/budget-barchart.scm
+++ b/gnucash/report/reports/standard/budget-barchart.scm
@@ -24,7 +24,7 @@
 ;;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
-(define-module (gnucash report reports standard budget-barchart))
+(define-module (gnucash reports standard budget-barchart))
 
 (use-modules (srfi srfi-1))
 (use-modules (gnucash utilities)) 
diff --git a/gnucash/report/reports/standard/budget-flow.scm b/gnucash/report/reports/standard/budget-flow.scm
index 1dd4e3ded..2d794a123 100644
--- a/gnucash/report/reports/standard/budget-flow.scm
+++ b/gnucash/report/reports/standard/budget-flow.scm
@@ -25,7 +25,7 @@
 ;;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
-(define-module (gnucash report reports standard budget-flow))
+(define-module (gnucash reports standard budget-flow))
 (use-modules (gnucash utilities))
 (use-modules (gnucash gnc-module))
 (use-modules (gnucash gettext))
diff --git a/gnucash/report/reports/standard/budget-income-statement.scm b/gnucash/report/reports/standard/budget-income-statement.scm
index 01f00c186..eb3dc41cc 100644
--- a/gnucash/report/reports/standard/budget-income-statement.scm
+++ b/gnucash/report/reports/standard/budget-income-statement.scm
@@ -40,7 +40,7 @@
 ;;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
-(define-module (gnucash report reports standard budget-income-statement))
+(define-module (gnucash reports standard budget-income-statement))
 (use-modules (gnucash utilities)) 
 (use-modules (gnucash gnc-module))
 (use-modules (gnucash gettext))
diff --git a/gnucash/report/reports/standard/budget.scm b/gnucash/report/reports/standard/budget.scm
index 495b7ae2a..4df971504 100644
--- a/gnucash/report/reports/standard/budget.scm
+++ b/gnucash/report/reports/standard/budget.scm
@@ -25,7 +25,7 @@
 ;;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
-(define-module (gnucash report reports standard budget))
+(define-module (gnucash reports standard budget))
 
 (use-modules (gnucash utilities))
 (use-modules (gnucash gnc-module))
diff --git a/gnucash/report/reports/standard/cash-flow.scm b/gnucash/report/reports/standard/cash-flow.scm
index fc13aa83d..7242ea1c9 100644
--- a/gnucash/report/reports/standard/cash-flow.scm
+++ b/gnucash/report/reports/standard/cash-flow.scm
@@ -27,7 +27,7 @@
 ;;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
-(define-module (gnucash report reports standard cash-flow))
+(define-module (gnucash reports standard cash-flow))
 (use-modules (gnucash utilities))
 (use-modules (gnucash gnc-module))
 (use-modules (gnucash gettext))
diff --git a/gnucash/report/reports/standard/cashflow-barchart.scm b/gnucash/report/reports/standard/cashflow-barchart.scm
index dfe1531af..e288b1eab 100644
--- a/gnucash/report/reports/standard/cashflow-barchart.scm
+++ b/gnucash/report/reports/standard/cashflow-barchart.scm
@@ -27,13 +27,13 @@
 ;;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
-(define-module (gnucash report reports standard cashflow-barchart))
+(define-module (gnucash reports standard cashflow-barchart))
 
 (use-modules (gnucash utilities)) 
 (use-modules (gnucash gnc-module))
 (use-modules (gnucash gettext))
 (use-modules (gnucash engine))
-(use-modules (gnucash report reports standard cash-flow))
+(use-modules (gnucash reports standard cash-flow))
 
 (gnc:module-load "gnucash/report" 0)
 
diff --git a/gnucash/report/reports/standard/category-barchart.scm b/gnucash/report/reports/standard/category-barchart.scm
index f7fe644c5..5036b902a 100644
--- a/gnucash/report/reports/standard/category-barchart.scm
+++ b/gnucash/report/reports/standard/category-barchart.scm
@@ -23,7 +23,7 @@
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 ;; depends must be outside module scope -- and should eventually go away.
-(define-module (gnucash report reports standard category-barchart))
+(define-module (gnucash reports standard category-barchart))
 (use-modules (srfi srfi-1))
 (use-modules (gnucash utilities))
 (use-modules (gnucash gnc-module))
diff --git a/gnucash/report/reports/standard/customer-summary.scm b/gnucash/report/reports/standard/customer-summary.scm
index 22c2871c8..547f1f367 100644
--- a/gnucash/report/reports/standard/customer-summary.scm
+++ b/gnucash/report/reports/standard/customer-summary.scm
@@ -26,7 +26,7 @@
 ;; not only print a summary for one single owner (here: only
 ;; customers), but instead a table showing all customers.
 
-(define-module (gnucash report reports standard customer-summary))
+(define-module (gnucash reports standard customer-summary))
 
 (use-modules (srfi srfi-1))
 (use-modules (gnucash gnc-module))
diff --git a/gnucash/report/reports/standard/dashboard.scm b/gnucash/report/reports/standard/dashboard.scm
index e34f38ca7..365b9e017 100644
--- a/gnucash/report/reports/standard/dashboard.scm
+++ b/gnucash/report/reports/standard/dashboard.scm
@@ -22,7 +22,7 @@
 ;; Boston, MA  02110-1301,  USA       gnu at gnu.org
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
-(define-module (gnucash report reports standard dashboard))
+(define-module (gnucash reports standard dashboard))
 (export gnc:make-dashboard)
 
 (use-modules (gnucash utilities))
diff --git a/gnucash/report/reports/standard/equity-statement.scm b/gnucash/report/reports/standard/equity-statement.scm
index 47e1d622f..aa33287a7 100644
--- a/gnucash/report/reports/standard/equity-statement.scm
+++ b/gnucash/report/reports/standard/equity-statement.scm
@@ -45,7 +45,7 @@
 ;;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
-(define-module (gnucash report reports standard equity-statement))
+(define-module (gnucash reports standard equity-statement))
 (use-modules (gnucash utilities)) 
 (use-modules (gnucash gnc-module))
 (use-modules (gnucash gettext))
diff --git a/gnucash/report/reports/standard/general-journal.scm b/gnucash/report/reports/standard/general-journal.scm
index e7efd5d73..fad6e6ca9 100644
--- a/gnucash/report/reports/standard/general-journal.scm
+++ b/gnucash/report/reports/standard/general-journal.scm
@@ -26,7 +26,7 @@
 ;;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
-(define-module (gnucash report reports standard general-journal))
+(define-module (gnucash reports standard general-journal))
 (export gnc:make-general-journal-report)
 (use-modules (gnucash utilities)) 
 (use-modules (gnucash gnc-module))
diff --git a/gnucash/report/reports/standard/general-ledger.scm b/gnucash/report/reports/standard/general-ledger.scm
index ec79f9e07..680667624 100644
--- a/gnucash/report/reports/standard/general-ledger.scm
+++ b/gnucash/report/reports/standard/general-ledger.scm
@@ -29,7 +29,7 @@
 ;;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
-(define-module (gnucash report reports standard general-ledger))
+(define-module (gnucash reports standard general-ledger))
 (export gnc:make-general-ledger-report)
 (use-modules (gnucash utilities)) 
 (use-modules (gnucash gnc-module))
diff --git a/gnucash/report/reports/standard/income-gst-statement.scm b/gnucash/report/reports/standard/income-gst-statement.scm
index 75d9b96ae..900304add 100644
--- a/gnucash/report/reports/standard/income-gst-statement.scm
+++ b/gnucash/report/reports/standard/income-gst-statement.scm
@@ -25,7 +25,7 @@
 ;;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
-(define-module (gnucash report reports standard income-gst-statement))
+(define-module (gnucash reports standard income-gst-statement))
 
 (use-modules (gnucash utilities)) 
 (use-modules (srfi srfi-1))
diff --git a/gnucash/report/reports/standard/income-statement.scm b/gnucash/report/reports/standard/income-statement.scm
index 704bab8fc..68e2e8ca6 100644
--- a/gnucash/report/reports/standard/income-statement.scm
+++ b/gnucash/report/reports/standard/income-statement.scm
@@ -41,7 +41,7 @@
 ;;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
-(define-module (gnucash report reports standard income-statement))
+(define-module (gnucash reports standard income-statement))
 (use-modules (gnucash utilities)) 
 (use-modules (gnucash gnc-module))
 (use-modules (gnucash gettext))
diff --git a/gnucash/report/reports/standard/invoice.scm b/gnucash/report/reports/standard/invoice.scm
index ea3fa108b..4e6516a3b 100644
--- a/gnucash/report/reports/standard/invoice.scm
+++ b/gnucash/report/reports/standard/invoice.scm
@@ -22,7 +22,7 @@
 ;; Boston, MA  02110-1301,  USA       gnu at gnu.org
 
 
-(define-module (gnucash report reports standard invoice))
+(define-module (gnucash reports standard invoice))
 
 (use-modules (srfi srfi-1))
 (use-modules (gnucash gnc-module))
diff --git a/gnucash/report/reports/standard/job-report.scm b/gnucash/report/reports/standard/job-report.scm
index b8dad6f8e..cc2d54b0b 100644
--- a/gnucash/report/reports/standard/job-report.scm
+++ b/gnucash/report/reports/standard/job-report.scm
@@ -24,7 +24,7 @@
 ;; Boston, MA  02110-1301,  USA       gnu at gnu.org
 
 
-(define-module (gnucash report reports standard job-report))
+(define-module (gnucash reports standard job-report))
 
 (use-modules (srfi srfi-1))
 (use-modules (gnucash gnc-module))
diff --git a/gnucash/report/reports/standard/net-charts.scm b/gnucash/report/reports/standard/net-charts.scm
index a57f7a340..4efdadbf0 100644
--- a/gnucash/report/reports/standard/net-charts.scm
+++ b/gnucash/report/reports/standard/net-charts.scm
@@ -26,7 +26,7 @@
 ;;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
-(define-module (gnucash report reports standard net-charts))
+(define-module (gnucash reports standard net-charts))
 
 (use-modules (srfi srfi-1))
 (use-modules (gnucash utilities)) 
diff --git a/gnucash/report/reports/standard/owner-report.scm b/gnucash/report/reports/standard/owner-report.scm
index 072da64af..c9f7f6613 100644
--- a/gnucash/report/reports/standard/owner-report.scm
+++ b/gnucash/report/reports/standard/owner-report.scm
@@ -25,7 +25,7 @@
 ;; Boston, MA  02110-1301,  USA       gnu at gnu.org
 
 
-(define-module (gnucash report reports standard owner-report))
+(define-module (gnucash reports standard owner-report))
 
 (use-modules (srfi srfi-1))
 (use-modules (gnucash gnc-module))
diff --git a/gnucash/report/reports/standard/payables.scm b/gnucash/report/reports/standard/payables.scm
index 16818262c..d800945a3 100644
--- a/gnucash/report/reports/standard/payables.scm
+++ b/gnucash/report/reports/standard/payables.scm
@@ -23,7 +23,7 @@
 ;;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
-(define-module (gnucash report reports standard payables))
+(define-module (gnucash reports standard payables))
 
 (use-modules (gnucash utilities))
 (use-modules (gnucash gnc-module))
@@ -31,7 +31,7 @@
 
 (gnc:module-load "gnucash/report" 0)
 
-(use-modules (gnucash report reports aging))
+(use-modules (gnucash reports aging))
 
 (define acc-page gnc:pagename-general)
 (define this-acc (N_ "Payable Account"))
diff --git a/gnucash/report/reports/standard/portfolio.scm b/gnucash/report/reports/standard/portfolio.scm
index 16e2bea21..7ad5ec6b4 100644
--- a/gnucash/report/reports/standard/portfolio.scm
+++ b/gnucash/report/reports/standard/portfolio.scm
@@ -21,7 +21,7 @@
 ;;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
-(define-module (gnucash report reports standard portfolio))
+(define-module (gnucash reports standard portfolio))
 
 (use-modules (gnucash utilities)) 
 (use-modules (srfi srfi-1))
diff --git a/gnucash/report/reports/standard/price-scatter.scm b/gnucash/report/reports/standard/price-scatter.scm
index d2a0846ae..24e066a1e 100644
--- a/gnucash/report/reports/standard/price-scatter.scm
+++ b/gnucash/report/reports/standard/price-scatter.scm
@@ -22,7 +22,7 @@
 ;;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
-(define-module (gnucash report reports standard price-scatter))
+(define-module (gnucash reports standard price-scatter))
 
 (use-modules (gnucash utilities)) 
 (use-modules (srfi srfi-1))
diff --git a/gnucash/report/reports/standard/receipt.scm b/gnucash/report/reports/standard/receipt.scm
index 560f3b162..7abf85576 100644
--- a/gnucash/report/reports/standard/receipt.scm
+++ b/gnucash/report/reports/standard/receipt.scm
@@ -14,7 +14,7 @@
 ;; Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
 ;; 02111-1307 USA
 
-(define-module (gnucash report reports standard receipt))
+(define-module (gnucash reports standard receipt))
 
 (use-modules (ice-9 local-eval))  ; for the-environment
 (use-modules (gnucash utilities))
diff --git a/gnucash/report/reports/standard/receivables.scm b/gnucash/report/reports/standard/receivables.scm
index 167c177f3..086e6ceb5 100644
--- a/gnucash/report/reports/standard/receivables.scm
+++ b/gnucash/report/reports/standard/receivables.scm
@@ -23,7 +23,7 @@
 ;;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
-(define-module (gnucash report reports standard receivables))
+(define-module (gnucash reports standard receivables))
 
 (use-modules (gnucash utilities))
 (use-modules (gnucash gnc-module))
@@ -31,7 +31,7 @@
 
 (gnc:module-load "gnucash/report" 0)
 
-(use-modules (gnucash report reports aging))
+(use-modules (gnucash reports aging))
 
 (define acc-page gnc:pagename-general)
 (define this-acc (N_ "Receivables Account"))
diff --git a/gnucash/report/reports/standard/reconcile-report.scm b/gnucash/report/reports/standard/reconcile-report.scm
index c05ae58d9..951484fed 100644
--- a/gnucash/report/reports/standard/reconcile-report.scm
+++ b/gnucash/report/reports/standard/reconcile-report.scm
@@ -24,7 +24,7 @@
 ;;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
-(define-module (gnucash report reports standard reconcile-report))
+(define-module (gnucash reports standard reconcile-report))
 
 (use-modules (gnucash gettext))
 (use-modules (gnucash gnc-module))
diff --git a/gnucash/report/reports/standard/register.scm b/gnucash/report/reports/standard/register.scm
index 0b8c984c7..bde2b320d 100644
--- a/gnucash/report/reports/standard/register.scm
+++ b/gnucash/report/reports/standard/register.scm
@@ -20,7 +20,7 @@
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 
-(define-module (gnucash report reports standard register))
+(define-module (gnucash reports standard register))
 
 (use-modules (gnucash utilities))
 (use-modules (srfi srfi-1))
diff --git a/gnucash/report/reports/standard/sx-summary.scm b/gnucash/report/reports/standard/sx-summary.scm
index 7156ed7d0..692981929 100644
--- a/gnucash/report/reports/standard/sx-summary.scm
+++ b/gnucash/report/reports/standard/sx-summary.scm
@@ -31,7 +31,7 @@
 ;; periods. Apart from this, all display options are taken from
 ;; account-summary unchangedly.
 
-(define-module (gnucash report reports standard sx-summary))
+(define-module (gnucash reports standard sx-summary))
 
 (use-modules (srfi srfi-1))
 (use-modules (gnucash utilities))
diff --git a/gnucash/report/reports/standard/taxinvoice.scm b/gnucash/report/reports/standard/taxinvoice.scm
index aec4209b0..b4f80b80c 100644
--- a/gnucash/report/reports/standard/taxinvoice.scm
+++ b/gnucash/report/reports/standard/taxinvoice.scm
@@ -22,7 +22,7 @@
 ; - specify a different module name below (eg mytaxinvoice)
 ; - refer to it from .gnucash/config.user
 ; (see https://wiki.gnucash.org/wiki/Custom_Reports )
-(define-module (gnucash report reports standard taxinvoice))
+(define-module (gnucash reports standard taxinvoice))
 
 (use-modules (ice-9 local-eval))  ; for the-environment
 (use-modules (gnucash utilities))
diff --git a/gnucash/report/reports/standard/test/test-average-balance.scm b/gnucash/report/reports/standard/test/test-average-balance.scm
index a23793181..cb27326fc 100644
--- a/gnucash/report/reports/standard/test/test-average-balance.scm
+++ b/gnucash/report/reports/standard/test/test-average-balance.scm
@@ -2,9 +2,9 @@
 (gnc:module-begin-syntax (gnc:module-load "gnucash/app-utils" 0))
 (gnc:module-begin-syntax (gnc:module-load "gnucash/report" 0))
 (use-modules (tests test-engine-extras))
-(use-modules (gnucash report reports example average-balance))
+(use-modules (gnucash reports example average-balance))
 (use-modules (gnucash report))
-(use-modules (gnucash report reports standard budget))
+(use-modules (gnucash reports standard budget))
 (use-modules (tests test-report-extras))
 (use-modules (gnucash report stylesheets plain)) ; For the default stylesheet, required for rendering
 (use-modules (tests srfi64-extras))
diff --git a/gnucash/report/reports/standard/test/test-balsheet-pnl.scm b/gnucash/report/reports/standard/test/test-balsheet-pnl.scm
index 661b2b258..c6941ec64 100644
--- a/gnucash/report/reports/standard/test/test-balsheet-pnl.scm
+++ b/gnucash/report/reports/standard/test/test-balsheet-pnl.scm
@@ -1,8 +1,8 @@
 (use-modules (gnucash gnc-module))
 (gnc:module-begin-syntax (gnc:module-load "gnucash/app-utils" 0))
 (use-modules (tests test-engine-extras))
-(use-modules (gnucash report reports standard balance-sheet))
-(use-modules (gnucash report reports standard income-statement))
+(use-modules (gnucash reports standard balance-sheet))
+(use-modules (gnucash reports standard income-statement))
 (use-modules (gnucash report stylesheets plain)) ; For the default stylesheet, required for rendering
 (use-modules (gnucash report))
 (use-modules (tests test-report-extras))
diff --git a/gnucash/report/reports/standard/test/test-budget.scm b/gnucash/report/reports/standard/test/test-budget.scm
index 50e2d60eb..5e9252ccb 100644
--- a/gnucash/report/reports/standard/test/test-budget.scm
+++ b/gnucash/report/reports/standard/test/test-budget.scm
@@ -30,7 +30,7 @@
 (use-modules (gnucash app-utils))
 (use-modules (gnucash engine))
 (use-modules (sw_engine))
-(use-modules (gnucash report reports standard budget))
+(use-modules (gnucash reports standard budget))
 (use-modules (tests test-report-extras))
 (use-modules (gnucash report stylesheets plain)) ; For the default stylesheet, required for rendering
 (use-modules (tests test-engine-extras))
diff --git a/gnucash/report/reports/standard/test/test-cash-flow.scm b/gnucash/report/reports/standard/test/test-cash-flow.scm
index 68a3c43f4..291b4f4ce 100644
--- a/gnucash/report/reports/standard/test/test-cash-flow.scm
+++ b/gnucash/report/reports/standard/test/test-cash-flow.scm
@@ -3,7 +3,7 @@
 (gnc:module-begin-syntax (gnc:module-load "gnucash/app-utils" 0))
 
 (use-modules (tests test-engine-extras))
-(use-modules (gnucash report reports standard cash-flow))
+(use-modules (gnucash reports standard cash-flow))
 (use-modules (gnucash report))
 
 (define (run-test)
diff --git a/gnucash/report/reports/standard/test/test-cashflow-barchart.scm b/gnucash/report/reports/standard/test/test-cashflow-barchart.scm
index 9d0725018..26ad55235 100644
--- a/gnucash/report/reports/standard/test/test-cashflow-barchart.scm
+++ b/gnucash/report/reports/standard/test/test-cashflow-barchart.scm
@@ -28,7 +28,7 @@
 (use-modules (tests srfi64-extras))
 (use-modules (gnucash report))
 (use-modules (tests test-report-extras))
-(use-modules (gnucash report reports standard cashflow-barchart))
+(use-modules (gnucash reports standard cashflow-barchart))
 (use-modules (gnucash report stylesheets plain)) ; For the default stylesheet, required for rendering
 (use-modules (srfi srfi-1))
 (use-modules (srfi srfi-64))
diff --git a/gnucash/report/reports/standard/test/test-charts.scm b/gnucash/report/reports/standard/test/test-charts.scm
index 01cff66b7..ec963f025 100644
--- a/gnucash/report/reports/standard/test/test-charts.scm
+++ b/gnucash/report/reports/standard/test/test-charts.scm
@@ -1,12 +1,12 @@
 (use-modules (gnucash gnc-module))
 (gnc:module-begin-syntax (gnc:module-load "gnucash/app-utils" 0))
 (use-modules (tests test-engine-extras))
-(use-modules (gnucash report reports standard category-barchart))
-(use-modules (gnucash report reports standard net-charts))
-(use-modules (gnucash report reports standard account-piecharts))
-(use-modules (gnucash report reports standard cashflow-barchart))
-(use-modules (gnucash report reports standard price-scatter))
-(use-modules (gnucash report reports example daily-reports))
+(use-modules (gnucash reports standard category-barchart))
+(use-modules (gnucash reports standard net-charts))
+(use-modules (gnucash reports standard account-piecharts))
+(use-modules (gnucash reports standard cashflow-barchart))
+(use-modules (gnucash reports standard price-scatter))
+(use-modules (gnucash reports example daily-reports))
 (use-modules (gnucash report stylesheets plain)) ; For the default stylesheet, required for rendering
 (use-modules (gnucash report))
 (use-modules (tests test-report-extras))
diff --git a/gnucash/report/reports/standard/test/test-income-gst.scm b/gnucash/report/reports/standard/test/test-income-gst.scm
index 90fa18920..faccdfb30 100644
--- a/gnucash/report/reports/standard/test/test-income-gst.scm
+++ b/gnucash/report/reports/standard/test/test-income-gst.scm
@@ -1,7 +1,7 @@
 (use-modules (gnucash gnc-module))
 (gnc:module-begin-syntax (gnc:module-load "gnucash/app-utils" 0))
 (use-modules (tests test-engine-extras))
-(use-modules (gnucash report reports standard income-gst-statement))
+(use-modules (gnucash reports standard income-gst-statement))
 (use-modules (gnucash report stylesheets plain)) ; For the default stylesheet, required for rendering
 (use-modules (gnucash report))
 (use-modules (tests test-report-extras))
diff --git a/gnucash/report/reports/standard/test/test-invoice.scm b/gnucash/report/reports/standard/test/test-invoice.scm
index d10741906..f5a5ac699 100644
--- a/gnucash/report/reports/standard/test/test-invoice.scm
+++ b/gnucash/report/reports/standard/test/test-invoice.scm
@@ -1,7 +1,7 @@
 (use-modules (gnucash gnc-module))
 (gnc:module-begin-syntax (gnc:module-load "gnucash/app-utils" 0))
 (use-modules (tests test-engine-extras))
-(use-modules (gnucash report reports standard invoice))
+(use-modules (gnucash reports standard invoice))
 (use-modules (gnucash report stylesheets plain)) ; For the default stylesheet, required for rendering
 (use-modules (gnucash report))
 (use-modules (tests test-report-extras))
diff --git a/gnucash/report/reports/standard/test/test-register.scm b/gnucash/report/reports/standard/test/test-register.scm
index e7c76c42a..864a72710 100644
--- a/gnucash/report/reports/standard/test/test-register.scm
+++ b/gnucash/report/reports/standard/test/test-register.scm
@@ -35,7 +35,7 @@
 (use-modules (gnucash app-utils))
 (use-modules (gnucash engine))
 (use-modules (sw_engine))
-(use-modules (gnucash report reports standard register))
+(use-modules (gnucash reports standard register))
 (use-modules (tests test-report-extras))
 (use-modules (gnucash report stylesheets plain)) ; For the default stylesheet, required for rendering
 (use-modules (tests test-engine-extras))
diff --git a/gnucash/report/reports/standard/test/test-standard-category-report.scm b/gnucash/report/reports/standard/test/test-standard-category-report.scm
index ead8da8aa..13cdee755 100644
--- a/gnucash/report/reports/standard/test/test-standard-category-report.scm
+++ b/gnucash/report/reports/standard/test/test-standard-category-report.scm
@@ -35,9 +35,9 @@
 (use-modules (gnucash app-utils))
 (use-modules (gnucash engine))
 (use-modules (sw_engine))
-(use-modules (gnucash report reports standard net-charts))
+(use-modules (gnucash reports standard net-charts))
 (use-modules (tests test-report-extras))
-(use-modules (gnucash report reports standard category-barchart))
+(use-modules (gnucash reports standard category-barchart))
 (use-modules (gnucash report stylesheets plain)) ; For the default stylesheet, required for rendering
 (use-modules (tests test-engine-extras))
 
diff --git a/gnucash/report/reports/standard/test/test-standard-net-barchart.scm b/gnucash/report/reports/standard/test/test-standard-net-barchart.scm
index b9aac203a..bed5e7117 100644
--- a/gnucash/report/reports/standard/test/test-standard-net-barchart.scm
+++ b/gnucash/report/reports/standard/test/test-standard-net-barchart.scm
@@ -27,7 +27,7 @@
 (use-modules (tests test-engine-extras))
 (use-modules (tests srfi64-extras))
 (use-modules (tests test-report-extras))
-(use-modules (gnucash report reports standard net-charts))
+(use-modules (gnucash reports standard net-charts))
 
 ;; Explicitly set locale to make the report output predictable
 (setlocale LC_ALL "C")
diff --git a/gnucash/report/reports/standard/test/test-standard-net-linechart.scm b/gnucash/report/reports/standard/test/test-standard-net-linechart.scm
index fda989f44..ca94e85d4 100644
--- a/gnucash/report/reports/standard/test/test-standard-net-linechart.scm
+++ b/gnucash/report/reports/standard/test/test-standard-net-linechart.scm
@@ -27,7 +27,7 @@
 (use-modules (tests test-engine-extras))
 (use-modules (tests srfi64-extras))
 (use-modules (tests test-report-extras))
-(use-modules (gnucash report reports standard net-charts))
+(use-modules (gnucash reports standard net-charts))
 
 ;; Explicitly set locale to make the report output predictable
 (setlocale LC_ALL "C")
diff --git a/gnucash/report/reports/standard/test/test-stress-options.scm b/gnucash/report/reports/standard/test/test-stress-options.scm
index 45c4b43ff..7e73076ed 100644
--- a/gnucash/report/reports/standard/test/test-stress-options.scm
+++ b/gnucash/report/reports/standard/test/test-stress-options.scm
@@ -4,9 +4,9 @@
 (use-modules (gnucash gnc-module))
 (gnc:module-begin-syntax (gnc:module-load "gnucash/app-utils" 0))
 (use-modules (tests test-engine-extras))
-(use-modules (gnucash report reports standard view-column))
+(use-modules (gnucash reports standard view-column))
 (use-modules (gnucash report stylesheets plain)) ; For the default stylesheet, required for rendering
-(use-modules (gnucash report reports standard taxinvoice))
+(use-modules (gnucash reports standard taxinvoice))
 (use-modules (gnucash report))
 (use-modules (tests test-report-extras))
 (use-modules (srfi srfi-64))
diff --git a/gnucash/report/reports/standard/test/test-transaction.scm b/gnucash/report/reports/standard/test/test-transaction.scm
index ebcb5cc6b..c91878b2d 100644
--- a/gnucash/report/reports/standard/test/test-transaction.scm
+++ b/gnucash/report/reports/standard/test/test-transaction.scm
@@ -1,8 +1,8 @@
 (use-modules (gnucash gnc-module))
 (gnc:module-begin-syntax (gnc:module-load "gnucash/app-utils" 0))
 (use-modules (tests test-engine-extras))
-(use-modules (gnucash report reports standard transaction))
-(use-modules (gnucash report reports standard reconcile-report))
+(use-modules (gnucash reports standard transaction))
+(use-modules (gnucash reports standard reconcile-report))
 (use-modules (gnucash report stylesheets plain)) ; For the default stylesheet, required for rendering
 (use-modules (gnucash report))
 (use-modules (tests test-report-extras))
diff --git a/gnucash/report/reports/standard/transaction.scm b/gnucash/report/reports/standard/transaction.scm
index fb0a28b56..25d33e213 100644
--- a/gnucash/report/reports/standard/transaction.scm
+++ b/gnucash/report/reports/standard/transaction.scm
@@ -22,7 +22,7 @@
 ;;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
-(define-module (gnucash report reports standard transaction))
+(define-module (gnucash reports standard transaction))
 
 (use-modules (gnucash gnc-module))
 (use-modules (gnucash gettext))
diff --git a/gnucash/report/reports/standard/trial-balance.scm b/gnucash/report/reports/standard/trial-balance.scm
index b3c880f49..3ef212c9b 100644
--- a/gnucash/report/reports/standard/trial-balance.scm
+++ b/gnucash/report/reports/standard/trial-balance.scm
@@ -50,7 +50,7 @@
 ;;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
-(define-module (gnucash report reports standard trial-balance))
+(define-module (gnucash reports standard trial-balance))
 (use-modules (gnucash utilities)) 
 (use-modules (gnucash gnc-module))
 (use-modules (gnucash gettext))
diff --git a/gnucash/report/reports/standard/view-column.scm b/gnucash/report/reports/standard/view-column.scm
index 0ffe548c6..55c2d5922 100644
--- a/gnucash/report/reports/standard/view-column.scm
+++ b/gnucash/report/reports/standard/view-column.scm
@@ -26,7 +26,7 @@
 ;; edited in a special window.  Every view gets a stylesheet so we
 ;; don't have to worry about that here.
 
-(define-module (gnucash report reports standard view-column))
+(define-module (gnucash reports standard view-column))
 (use-modules (gnucash utilities)) 
 (use-modules (gnucash app-utils))
 (use-modules (gnucash gnc-module))
diff --git a/libgnucash/core-utils/gnc-path.c b/libgnucash/core-utils/gnc-path.c
index f02d66141..eb362a4c2 100644
--- a/libgnucash/core-utils/gnc-path.c
+++ b/libgnucash/core-utils/gnc-path.c
@@ -171,7 +171,7 @@ gchar *gnc_path_get_accountsdir()
 }
 
 /** Returns the file path to the directory containing all guile scripts, usually
- * "$prefix/guile/site/2.2".
+ * "$prefix/guile/site/x.y".
  * This path is determined by querying guile for its sitedir and then
  * rebasing this to be relative to our own installation prefix.
  *
@@ -186,7 +186,7 @@ gchar *gnc_path_get_scmdir()
 }
 
 /** Returns the file path to the report directory, usually
- * "$prefix/share/gnucash/scm/gnucash/report".
+ * "$prefix/share/guile/site/x.y/gnucash/report".
  *
  * @returns A newly allocated string. */
 gchar *gnc_path_get_reportdir()
@@ -199,21 +199,21 @@ gchar *gnc_path_get_reportdir()
 }
 
 /** Returns the file path to the reports directory, usually
- * "$prefix/share/gnucash/scm/gnucash/report/reports".
+ * "$prefix/share/guile/site/x.y/gnucash/reports".
  *
  * @returns A newly allocated string. */
 gchar *gnc_path_get_reportsdir()
 {
-    gchar *reportdir = gnc_path_get_reportdir ();
-    gchar *result = g_build_filename (reportdir, "reports", NULL);
-    g_free (reportdir);
+    gchar *scmdir = gnc_path_get_scmdir ();
+    gchar *result = g_build_filename (scmdir, "gnucash", "reports", NULL);
+    g_free (scmdir);
     //printf("Returning reportsdir %s\n", result);
     return result;
 }
 
 /** Returns the file path to the standard
  * reports, usually
- * "$prefix/share/gnucash/scm/gnucash/report/reports/standard".
+ * "$prefix/share/guile/site/x.y/gnucash/reports/standard".
  *
  * @returns A newly allocated string. */
 gchar *gnc_path_get_stdreportsdir()
diff --git a/libgnucash/core-utils/gnc-path.h b/libgnucash/core-utils/gnc-path.h
index ac65ea772..cc133e921 100644
--- a/libgnucash/core-utils/gnc-path.h
+++ b/libgnucash/core-utils/gnc-path.h
@@ -93,26 +93,26 @@ gchar *gnc_path_get_localedir(void);
 gchar *gnc_path_get_accountsdir(void);
 
 /** Returns the file path to the directory containing all guile scripts, usually
- * "$prefix/share/gnucash/scm".
+ * "$prefix/share/guile/site/x.y".
  *
  * @returns A newly allocated string. */
 gchar *gnc_path_get_scmdir(void);
 
 /** Returns the file path to the report directory, usually
- * "$prefix/share/gnucash/scm/gnucash/report".
+ * "$prefix/share/guile/site/x.y/gnucash/report".
  *
  * @returns A newly allocated string. */
 gchar *gnc_path_get_reportdir(void);
 
 /** Returns the file path to the reports, usually
- * "$prefix/share/gnucash/scm/gnucash/report/reports".
+ * "$prefix/share/guile/site/x.y/gnucash/reports".
  *
  * @returns A newly allocated string. */
 gchar *gnc_path_get_reportsdir(void);
 
 /** Returns the file path to the standard
  * reports, usually
- * "$prefix/share/gnucash/scm/gnucash/report/reports/standard".
+ * "$prefix/share/guile/site/x.y/gnucash/reports/standard".
  *
  * @returns A newly allocated string. */
 gchar *gnc_path_get_stdreportsdir(void);

commit 707f9a402999df40bd62910f3b839da8ee635f05
Author: Geert Janssens <geert at kobaltwit.be>
Date:   Fri Jun 14 13:27:37 2019 +0200

    RptCleanup - restructure eguile code into a single (gnucash eguile) module

diff --git a/gnucash/report/CMakeLists.txt b/gnucash/report/CMakeLists.txt
index e3e025ccc..093a4f6e7 100644
--- a/gnucash/report/CMakeLists.txt
+++ b/gnucash/report/CMakeLists.txt
@@ -74,12 +74,15 @@ set (report_SCHEME_2
     trep-engine.scm
 )
 
-set (report_SCHEME_3
-    eguile-gnc.scm
+set (report_eguile_parts_SCHEME
     eguile-utilities.scm
     eguile-html-utilities.scm
 )
 
+set (report_eguile_SCHEME
+    eguile.scm
+)
+
 set(GUILE_DEPENDS
   gncmod-html
   scm-gnome-utils
@@ -103,20 +106,27 @@ gnc_add_scheme_targets(scm-report-2
   TRUE
 )
 
-gnc_add_scheme_targets(scm-report-3
-  "${report_SCHEME_3}"
-  "gnucash/report"
+gnc_add_scheme_targets(scm-report-eguile-parts
+  "${report_eguile_parts_SCHEME}"
+  "gnucash/eguile"
+  scm-report-1
+  FALSE
+)
+
+gnc_add_scheme_targets(scm-report-eguile
+  "${report_eguile_SCHEME}"
+  "gnucash"
   scm-report-1
   FALSE
 )
 
-add_custom_target(scm-report ALL DEPENDS scm-report-3)
+add_custom_target(scm-report ALL DEPENDS scm-report-eguile)
 
 set_local_dist(report_DIST_local CMakeLists.txt
   report.i
   ${report_HEADERS} ${report_SOURCES}
-  ${report_SCHEME} ${report_SCHEME_1}
-  ${report_SCHEME_2} ${report_SCHEME_3})
+  ${report_SCHEME} ${report_SCHEME_1} ${report_SCHEME_2}
+  ${report_eguile_parts_SCHEME} ${report_eguile_SCHEME})
 
 set(report_DIST ${report_DIST_local} ${jqplot_DIST}
                 ${reports_DIST} ${stylesheets_DIST} ${test_report_DIST} PARENT_SCOPE)
diff --git a/gnucash/report/eguile-html-utilities.scm b/gnucash/report/eguile-html-utilities.scm
index 3f4a44d19..05a5aef09 100644
--- a/gnucash/report/eguile-html-utilities.scm
+++ b/gnucash/report/eguile-html-utilities.scm
@@ -22,8 +22,6 @@
 ;; Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
 ;; 02111-1307 USA
 
-(define-module (gnucash report eguile-html-utilities))
-
 ; using all of these seems like overkill --
 ; not sure which are really required
 (use-modules (gnucash utilities))
diff --git a/gnucash/report/eguile-utilities.scm b/gnucash/report/eguile-utilities.scm
index e18dfdbaf..341760d48 100644
--- a/gnucash/report/eguile-utilities.scm
+++ b/gnucash/report/eguile-utilities.scm
@@ -22,8 +22,6 @@
 ;; Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
 ;; 02111-1307 USA
 
-(define-module (gnucash report eguile-utilities))
-
 ; using all of these seems like overkill -- 
 ; not sure which are really required
 (use-modules (gnucash utilities))
diff --git a/gnucash/report/eguile-gnc.scm b/gnucash/report/eguile.scm
similarity index 98%
rename from gnucash/report/eguile-gnc.scm
rename to gnucash/report/eguile.scm
index 9a9e130c8..ab2dfd71d 100644
--- a/gnucash/report/eguile-gnc.scm
+++ b/gnucash/report/eguile.scm
@@ -81,7 +81,7 @@
 ;; Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
 ;; 02111-1307 USA
 
-(define-module (gnucash report eguile-gnc))
+(define-module (gnucash eguile))
 
 (use-modules (ice-9 regex))       ; for regular expressions
 (use-modules (ice-9 rdelim))      ; for read-line
@@ -254,3 +254,5 @@
 
 (export eguile-file-to-string)
 
+(load-from-path "gnucash/eguile/eguile-utilities")
+(load-from-path "gnucash/eguile/eguile-html-utilities")
diff --git a/gnucash/report/reports/standard/balsheet-eg.scm b/gnucash/report/reports/standard/balsheet-eg.scm
index 37e7f5b48..6a18c7f33 100644
--- a/gnucash/report/reports/standard/balsheet-eg.scm
+++ b/gnucash/report/reports/standard/balsheet-eg.scm
@@ -35,8 +35,7 @@
 (use-modules (gnucash utilities))
 (use-modules (gnucash gnc-module))
 (use-modules (gnucash gettext))
-(use-modules (gnucash report eguile-gnc))
-(use-modules (gnucash report eguile-utilities))
+(use-modules (gnucash eguile))
 
 (use-modules (ice-9 regex))  ; for regular expressions
 (use-modules (ice-9 local-eval))  ; for the-environment
diff --git a/gnucash/report/reports/standard/receipt.scm b/gnucash/report/reports/standard/receipt.scm
index df2955060..560f3b162 100644
--- a/gnucash/report/reports/standard/receipt.scm
+++ b/gnucash/report/reports/standard/receipt.scm
@@ -24,9 +24,7 @@
 (gnc:module-load "gnucash/html" 0)
 (gnc:module-load "gnucash/engine" 0)
 
-(use-modules (gnucash report eguile-utilities))
-(use-modules (gnucash report eguile-html-utilities))
-(use-modules (gnucash report eguile-gnc))
+(use-modules (gnucash eguile))
 
 (use-modules (srfi srfi-13)) ; for extra string functions
 (use-modules (ice-9 format)) ; for number formatting
diff --git a/gnucash/report/reports/standard/taxinvoice.scm b/gnucash/report/reports/standard/taxinvoice.scm
index 0129b6a96..aec4209b0 100644
--- a/gnucash/report/reports/standard/taxinvoice.scm
+++ b/gnucash/report/reports/standard/taxinvoice.scm
@@ -32,9 +32,7 @@
 (gnc:module-load "gnucash/html" 0)
 (gnc:module-load "gnucash/engine" 0)
 
-(use-modules (gnucash report eguile-utilities))
-(use-modules (gnucash report eguile-html-utilities))
-(use-modules (gnucash report eguile-gnc))
+(use-modules (gnucash eguile))
 
 (use-modules (srfi srfi-13)) ; for extra string functions
 
diff --git a/po/POTFILES.in b/po/POTFILES.in
index c598f735b..3a47e8622 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -420,8 +420,8 @@ gnucash/register/register-gnome/pricecell-gnome.c
 gnucash/register/register-gnome/quickfillcell-gnome.c
 gnucash/register/register-gnome/table-gnome.c
 gnucash/report/commodity-utilities.scm
-gnucash/report/eguile-gnc.scm
 gnucash/report/eguile-html-utilities.scm
+gnucash/report/eguile.scm
 gnucash/report/eguile-utilities.scm
 gnucash/report/gncmod-report.c
 gnucash/report/gnc-report.c

commit 3f8f32ab25274f44066aa22b7022f33a1fdd1b84
Author: Geert Janssens <geert at kobaltwit.be>
Date:   Fri Jun 14 11:44:04 2019 +0200

    RptCleanup - Consolidate report system gui initialization
    
    For this gnc-plugin-stylesheets has gotten a wider scope to become
    gnc-plugin-report-system. The new plugin does all the report system
    initialization bits wrt to the gui.

diff --git a/gnucash/gnome/CMakeLists.txt b/gnucash/gnome/CMakeLists.txt
index 9f340753f..3cc49321d 100644
--- a/gnucash/gnome/CMakeLists.txt
+++ b/gnucash/gnome/CMakeLists.txt
@@ -41,7 +41,7 @@ set (gnc_gnome_noinst_HEADERS
   gnc-plugin-business.h
   gnc-plugin-register.h
   gnc-plugin-register2.h
-  gnc-plugin-stylesheets.h
+  gnc-plugin-report-system.h
   gnc-plugin-page-account-tree.h
   gnc-plugin-page-budget.h
   gnc-plugin-page-invoice.h
@@ -113,7 +113,7 @@ set (gnc_gnome_SOURCES
   gnc-plugin-business.c
   gnc-plugin-register.c
   gnc-plugin-register2.c
-  gnc-plugin-stylesheets.c
+  gnc-plugin-report-system.c
   gnc-plugin-page-account-tree.c
   gnc-plugin-page-budget.c
   gnc-plugin-page-invoice.c
diff --git a/gnucash/gnome/gnc-plugin-report-system.c b/gnucash/gnome/gnc-plugin-report-system.c
new file mode 100644
index 000000000..94ebaff89
--- /dev/null
+++ b/gnucash/gnome/gnc-plugin-report-system.c
@@ -0,0 +1,275 @@
+/*
+ * gnc-plugin-report-system.c --
+ * Copyright (C) 2003 David Hampton <hampton at employees.org>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, contact:
+ *
+ * Free Software Foundation           Voice:  +1-617-542-5942
+ * 51 Franklin Street, Fifth Floor    Fax:    +1-617-542-2652
+ * Boston, MA  02110-1301,  USA       gnu at gnu.org
+ */
+
+#include <config.h>
+
+#include <gtk/gtk.h>
+#include <glib/gi18n.h>
+
+#include "dialog-report-style-sheet.h"
+#include "file-utils.h"
+#include "gnc-gnome-utils.h"
+#include "gnc-html.h"
+#include "gnc-plugin-page-report.h"
+#include "gnc-plugin-report-system.h"
+#include "gnc-plugin-manager.h"
+#include "gnc-report.h"
+#include "gnc-engine.h"
+#include "window-report.h"
+
+static void gnc_plugin_report_system_class_init (GncPluginReportSystemClass *klass);
+static void gnc_plugin_report_system_init (GncPluginReportSystem *plugin);
+static void gnc_plugin_report_system_finalize (GObject *object);
+
+
+/* Command callbacks */
+static void gnc_plugin_report_system_cmd_edit_style_sheet (GtkAction *action,
+        GncMainWindowActionData *data);
+
+
+#define PLUGIN_ACTIONS_NAME "gnc-plugin-report-system-actions"
+#define PLUGIN_UI_FILENAME  "gnc-plugin-report-system-ui.xml"
+
+static GtkActionEntry gnc_plugin_actions [] =
+{
+    /* Menu Items */
+    {
+        "EditStyleSheetsAction", NULL, N_("St_yle Sheets"), NULL,
+        N_("Edit report style sheets"),
+        G_CALLBACK (gnc_plugin_report_system_cmd_edit_style_sheet)
+    },
+};
+static guint gnc_plugin_n_actions = G_N_ELEMENTS (gnc_plugin_actions);
+
+
+typedef struct GncPluginReportSystemPrivate
+{
+    gpointer dummy;
+} GncPluginReportSystemPrivate;
+
+G_DEFINE_TYPE_WITH_PRIVATE(GncPluginReportSystem, gnc_plugin_report_system, GNC_TYPE_PLUGIN)
+
+#define GNC_PLUGIN_REPORT_SYSTEM_GET_PRIVATE(o)  \
+   (G_TYPE_INSTANCE_GET_PRIVATE ((o), GNC_TYPE_PLUGIN_REPORT_SYSTEM, GncPluginReportSystemPrivate))
+
+static GObjectClass *parent_class = NULL;
+
+/************************************************************
+ *                   Object Implementation                  *
+ ************************************************************/
+
+static void
+gnc_plugin_report_system_class_init (GncPluginReportSystemClass *klass)
+{
+    GObjectClass *object_class = G_OBJECT_CLASS (klass);
+    GncPluginClass *plugin_class = GNC_PLUGIN_CLASS (klass);
+
+    parent_class = g_type_class_peek_parent (klass);
+
+    object_class->finalize = gnc_plugin_report_system_finalize;
+
+    /* plugin info */
+    plugin_class->plugin_name  = GNC_PLUGIN_REPORT_SYSTEM_NAME;
+
+    /* widget addition/removal */
+    plugin_class->actions_name  	   = PLUGIN_ACTIONS_NAME;
+    plugin_class->actions       	   = gnc_plugin_actions;
+    plugin_class->n_actions     	   = gnc_plugin_n_actions;
+    plugin_class->ui_filename   	   = PLUGIN_UI_FILENAME;
+}
+
+static void
+gnc_plugin_report_system_init (GncPluginReportSystem *plugin)
+{
+}
+
+static void
+gnc_plugin_report_system_finalize (GObject *object)
+{
+    g_return_if_fail (GNC_IS_PLUGIN_REPORT_SYSTEM (object));
+
+    G_OBJECT_CLASS (parent_class)->finalize (object);
+}
+
+/************************************************************
+ *                    Command Callbacks                     *
+ ************************************************************/
+
+static void
+gnc_plugin_report_system_cmd_edit_style_sheet (GtkAction *action,
+        GncMainWindowActionData *data)
+{
+    gnc_style_sheet_dialog_open(GTK_WINDOW (data->window));
+}
+
+/************************************************************
+ *               Html url and stream handlers               *
+ ************************************************************/
+
+static gboolean
+gnc_report_system_file_stream_cb (const char *location, char ** data, int *len)
+{
+    *len = gncReadFile (location, data);
+    return (*len > 0);
+}
+
+static gboolean
+gnc_report_system_report_stream_cb (const char *location, char ** data, int *len)
+{
+    gboolean ok;
+
+    ok = gnc_run_report_id_string (location, data);
+
+    if (!ok)
+    {
+        *data = g_strdup_printf ("<html><body><h3>%s</h3>"
+        "<p>%s</p></body></html>",
+        _("Report error"),
+                                 _("An error occurred while running the report."));
+
+        /* Make sure the progress bar is finished, which will also
+         *           make the GUI sensitive again. Easier to do this via guile
+         *           because otherwise we would need to link against gnome-utils
+         *           and a lot more. */
+        scm_c_eval_string("(gnc:report-finished)");
+    }
+
+    *len = strlen(*data);
+    return ok;
+}
+
+/* TODO: unroll start_editor */
+static gboolean
+gnc_report_system_options_url_cb (const char *location, const char *label,
+                         gboolean new_window, GNCURLResult *result)
+{
+    SCM report;
+    int report_id;
+
+    g_return_val_if_fail (location != NULL, FALSE);
+    g_return_val_if_fail (result != NULL, FALSE);
+
+    result->load_to_stream = FALSE;
+
+    /* href="gnc-options:report-id=2676" */
+    if (strncmp ("report-id=", location, 10) == 0)
+    {
+        if (sscanf (location + 10, "%d", &report_id) != 1)
+        {
+            result->error_message =
+            g_strdup_printf (_("Badly formed options URL: %s"), location);
+
+            return FALSE;
+        }
+
+        report = gnc_report_find(report_id);
+        if (report == SCM_UNDEFINED ||
+            report == SCM_BOOL_F)
+        {
+            result->error_message =
+            g_strdup_printf (_("Badly-formed report id: %s"), location);
+
+            return FALSE;
+        }
+
+        gnc_report_edit_options (report, GTK_WINDOW(result->parent));
+
+        return TRUE;
+    }
+    else
+    {
+        result->error_message =
+        g_strdup_printf (_("Badly formed options URL: %s"), location);
+
+        return FALSE;
+    }
+}
+
+static gboolean
+gnc_report_system_report_url_cb (const char *location, const char *label,
+                        gboolean new_window, GNCURLResult *result)
+{
+    g_return_val_if_fail (location != NULL, FALSE);
+    g_return_val_if_fail (result != NULL, FALSE);
+
+    /* make a new window if necessary */
+    if (new_window)
+    {
+        char *url;
+
+        url = gnc_build_url (URL_TYPE_REPORT, location, label);
+        gnc_main_window_open_report_url (url, GNC_MAIN_WINDOW(result->parent));
+        g_free (url);
+
+        result->load_to_stream = FALSE;
+    }
+    else
+    {
+        result->load_to_stream = TRUE;
+    }
+
+    return TRUE;
+}
+
+static gboolean
+gnc_report_system_help_url_cb (const char *location, const char *label,
+                      gboolean new_window, GNCURLResult *result)
+{
+    g_return_val_if_fail (location != NULL, FALSE);
+
+    if (label && (*label != '\0'))
+        gnc_gnome_help (location, label);
+    else
+        gnc_gnome_help (location, NULL);
+    return TRUE;
+}
+
+
+/************************************************************
+ *                    Plugin Bootstrapping                   *
+ ************************************************************/
+
+void
+gnc_plugin_report_system_new (void)
+{
+    GncPlugin *plugin;
+
+    /* Reference the report page plugin to ensure it exists in the gtk
+     * type system. */
+    GNC_TYPE_PLUGIN_PAGE_REPORT;
+
+    /* Register html handlers */
+    gnc_html_register_stream_handler (URL_TYPE_HELP, gnc_report_system_file_stream_cb);
+    gnc_html_register_stream_handler (URL_TYPE_FILE, gnc_report_system_file_stream_cb);
+    gnc_html_register_stream_handler (URL_TYPE_REPORT, gnc_report_system_report_stream_cb);
+
+    gnc_html_register_url_handler (URL_TYPE_OPTIONS, gnc_report_system_options_url_cb);
+    gnc_html_register_url_handler (URL_TYPE_REPORT, gnc_report_system_report_url_cb);
+    gnc_html_register_url_handler (URL_TYPE_HELP, gnc_report_system_help_url_cb);
+
+    scm_c_use_module("gnucash report reports");
+    scm_c_use_module("gnucash report-menus");
+    scm_c_eval_string("(gnc:report-menu-setup)");
+
+    plugin = GNC_PLUGIN (g_object_new (GNC_TYPE_PLUGIN_REPORT_SYSTEM, NULL));
+    gnc_plugin_manager_add_plugin (gnc_plugin_manager_get (), plugin);
+}
diff --git a/gnucash/gnome/gnc-plugin-report-system.h b/gnucash/gnome/gnc-plugin-report-system.h
new file mode 100644
index 000000000..b897514ec
--- /dev/null
+++ b/gnucash/gnome/gnc-plugin-report-system.h
@@ -0,0 +1,59 @@
+/*
+ * gnc-plugin-report-system.h --
+ * Copyright (C) 2003 David Hampton <hampton at employees.org>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, contact:
+ *
+ * Free Software Foundation           Voice:  +1-617-542-5942
+ * 51 Franklin Street, Fifth Floor    Fax:    +1-617-542-2652
+ * Boston, MA  02110-1301,  USA       gnu at gnu.org
+ */
+
+#ifndef __GNC_PLUGIN_REPORT_SYSTEM_H
+#define __GNC_PLUGIN_REPORT_SYSTEM_H
+
+#include <gtk/gtk.h>
+
+#include "gnc-plugin.h"
+
+G_BEGIN_DECLS
+
+/* type macros */
+#define GNC_TYPE_PLUGIN_REPORT_SYSTEM            (gnc_plugin_report_system_get_type ())
+#define GNC_PLUGIN_REPORT_SYSTEM(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GNC_TYPE_PLUGIN_REPORT_SYSTEM, GncPluginReportSystem))
+#define GNC_PLUGIN_REPORT_SYSTEM_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), GNC_TYPE_PLUGIN_REPORT_SYSTEM, GncPluginReportSystemClass))
+#define GNC_IS_PLUGIN_REPORT_SYSTEM(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GNC_TYPE_PLUGIN_REPORT_SYSTEM))
+#define GNC_IS_PLUGIN_REPORT_SYSTEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GNC_TYPE_PLUGIN_REPORT_SYSTEM))
+#define GNC_PLUGIN_REPORT_SYSTEM_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), GNC_TYPE_PLUGIN_REPORT_SYSTEM, GncPluginReportSystemClass))
+
+#define GNC_PLUGIN_REPORT_SYSTEM_NAME "gnc-plugin-report-system"
+
+/* typedefs & structures */
+typedef struct
+{
+    GncPlugin gnc_plugin;
+} GncPluginReportSystem;
+
+typedef struct
+{
+    GncPluginClass gnc_plugin;
+} GncPluginReportSystemClass;
+
+/* function prototypes */
+GType      gnc_plugin_report_system_get_type   (void);
+void       gnc_plugin_report_system_new  (void);
+
+G_END_DECLS
+
+#endif /* __GNC_PLUGIN_REPORT_SYSTEM_H */
diff --git a/gnucash/gnome/gnc-plugin-stylesheets.c b/gnucash/gnome/gnc-plugin-stylesheets.c
deleted file mode 100644
index ab5c4ed62..000000000
--- a/gnucash/gnome/gnc-plugin-stylesheets.c
+++ /dev/null
@@ -1,135 +0,0 @@
-/*
- * gnc-plugin-stylesheets.c --
- * Copyright (C) 2003 David Hampton <hampton at employees.org>
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program 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 General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, contact:
- *
- * Free Software Foundation           Voice:  +1-617-542-5942
- * 51 Franklin Street, Fifth Floor    Fax:    +1-617-542-2652
- * Boston, MA  02110-1301,  USA       gnu at gnu.org
- */
-
-#include <config.h>
-
-#include <gtk/gtk.h>
-#include <glib/gi18n.h>
-
-#include "dialog-report-style-sheet.h"
-#include "gnc-gnome-utils.h"
-#include "gnc-plugin-stylesheets.h"
-#include "gnc-plugin-manager.h"
-#include "gnc-engine.h"
-
-static void gnc_plugin_stylesheets_class_init (GncPluginStylesheetsClass *klass);
-static void gnc_plugin_stylesheets_init (GncPluginStylesheets *plugin);
-static void gnc_plugin_stylesheets_finalize (GObject *object);
-
-
-/* Command callbacks */
-static void gnc_plugin_stylesheets_cmd_edit_style_sheet (GtkAction *action,
-        GncMainWindowActionData *data);
-
-
-#define PLUGIN_ACTIONS_NAME "gnc-plugin-stylesheets-actions"
-#define PLUGIN_UI_FILENAME  "gnc-plugin-stylesheets-ui.xml"
-
-static GtkActionEntry gnc_plugin_actions [] =
-{
-    /* Menu Items */
-    {
-        "EditStyleSheetsAction", NULL, N_("St_yle Sheets"), NULL,
-        N_("Edit report style sheets"),
-        G_CALLBACK (gnc_plugin_stylesheets_cmd_edit_style_sheet)
-    },
-};
-static guint gnc_plugin_n_actions = G_N_ELEMENTS (gnc_plugin_actions);
-
-
-typedef struct GncPluginStylesheetsPrivate
-{
-    gpointer dummy;
-} GncPluginStylesheetsPrivate;
-
-G_DEFINE_TYPE_WITH_PRIVATE(GncPluginStylesheets, gnc_plugin_stylesheets, GNC_TYPE_PLUGIN)
-
-#define GNC_PLUGIN_STYLESHEETS_GET_PRIVATE(o)  \
-   (G_TYPE_INSTANCE_GET_PRIVATE ((o), GNC_TYPE_PLUGIN_STYLESHEETS, GncPluginStylesheetsPrivate))
-
-static GObjectClass *parent_class = NULL;
-
-/************************************************************
- *                   Object Implementation                  *
- ************************************************************/
-
-GncPlugin *
-gnc_plugin_stylesheets_new (void)
-{
-    return GNC_PLUGIN (g_object_new (GNC_TYPE_PLUGIN_STYLESHEETS, NULL));
-}
-
-static void
-gnc_plugin_stylesheets_class_init (GncPluginStylesheetsClass *klass)
-{
-    GObjectClass *object_class = G_OBJECT_CLASS (klass);
-    GncPluginClass *plugin_class = GNC_PLUGIN_CLASS (klass);
-
-    parent_class = g_type_class_peek_parent (klass);
-
-    object_class->finalize = gnc_plugin_stylesheets_finalize;
-
-    /* plugin info */
-    plugin_class->plugin_name  = GNC_PLUGIN_STYLESHEETS_NAME;
-
-    /* widget addition/removal */
-    plugin_class->actions_name  	   = PLUGIN_ACTIONS_NAME;
-    plugin_class->actions       	   = gnc_plugin_actions;
-    plugin_class->n_actions     	   = gnc_plugin_n_actions;
-    plugin_class->ui_filename   	   = PLUGIN_UI_FILENAME;
-}
-
-static void
-gnc_plugin_stylesheets_init (GncPluginStylesheets *plugin)
-{
-}
-
-static void
-gnc_plugin_stylesheets_finalize (GObject *object)
-{
-    g_return_if_fail (GNC_IS_PLUGIN_STYLESHEETS (object));
-
-    G_OBJECT_CLASS (parent_class)->finalize (object);
-}
-
-/************************************************************
- *                    Command Callbacks                     *
- ************************************************************/
-
-static void
-gnc_plugin_stylesheets_cmd_edit_style_sheet (GtkAction *action,
-        GncMainWindowActionData *data)
-{
-    gnc_style_sheet_dialog_open(GTK_WINDOW (data->window));
-}
-
-/************************************************************
- *                    Plugin Bootstrapping                   *
- ************************************************************/
-
-void
-gnc_plugin_stylesheets_create_plugin (void)
-{
-    GncPlugin *plugin = gnc_plugin_stylesheets_new ();
-
-    gnc_plugin_manager_add_plugin (gnc_plugin_manager_get (), plugin);
-}
diff --git a/gnucash/gnome/gnc-plugin-stylesheets.h b/gnucash/gnome/gnc-plugin-stylesheets.h
deleted file mode 100644
index 6929c80e0..000000000
--- a/gnucash/gnome/gnc-plugin-stylesheets.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * gnc-plugin-stylesheets.h --
- * Copyright (C) 2003 David Hampton <hampton at employees.org>
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program 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 General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, contact:
- *
- * Free Software Foundation           Voice:  +1-617-542-5942
- * 51 Franklin Street, Fifth Floor    Fax:    +1-617-542-2652
- * Boston, MA  02110-1301,  USA       gnu at gnu.org
- */
-
-#ifndef __GNC_PLUGIN_STYLESHEETS_H
-#define __GNC_PLUGIN_STYLESHEETS_H
-
-#include <gtk/gtk.h>
-
-#include "gnc-plugin.h"
-
-G_BEGIN_DECLS
-
-/* type macros */
-#define GNC_TYPE_PLUGIN_STYLESHEETS            (gnc_plugin_stylesheets_get_type ())
-#define GNC_PLUGIN_STYLESHEETS(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GNC_TYPE_PLUGIN_STYLESHEETS, GncPluginStylesheets))
-#define GNC_PLUGIN_STYLESHEETS_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), GNC_TYPE_PLUGIN_STYLESHEETS, GncPluginStylesheetsClass))
-#define GNC_IS_PLUGIN_STYLESHEETS(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GNC_TYPE_PLUGIN_STYLESHEETS))
-#define GNC_IS_PLUGIN_STYLESHEETS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GNC_TYPE_PLUGIN_STYLESHEETS))
-#define GNC_PLUGIN_STYLESHEETS_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), GNC_TYPE_PLUGIN_STYLESHEETS, GncPluginStylesheetsClass))
-
-#define GNC_PLUGIN_STYLESHEETS_NAME "gnc-plugin-stylesheets"
-
-/* typedefs & structures */
-typedef struct
-{
-    GncPlugin gnc_plugin;
-} GncPluginStylesheets;
-
-typedef struct
-{
-    GncPluginClass gnc_plugin;
-} GncPluginStylesheetsClass;
-
-/* function prototypes */
-GType      gnc_plugin_stylesheets_get_type   (void);
-
-GncPlugin *gnc_plugin_stylesheets_new        (void);
-
-void       gnc_plugin_stylesheets_create_plugin  (void);
-
-G_END_DECLS
-
-#endif /* __GNC_PLUGIN_STYLESHEETS_H */
diff --git a/gnucash/gnome/gnome.i b/gnucash/gnome/gnome.i
index f761a1562..0ef59d164 100644
--- a/gnucash/gnome/gnome.i
+++ b/gnucash/gnome/gnome.i
@@ -27,7 +27,6 @@
 #include <config.h>
 #include <gtk/gtk.h>
 #include <gnc-plugin-page-report.h>
-#include <window-report.h>
 #include <dialog-custom-report.h>
 %}
 #if defined(SWIGGUILE)
diff --git a/gnucash/gnome/window-report.c b/gnucash/gnome/window-report.c
index d884df647..28240d082 100644
--- a/gnucash/gnome/window-report.c
+++ b/gnucash/gnome/window-report.c
@@ -35,18 +35,14 @@
 #include "swig-runtime.h"
 #include "dialog-options.h"
 #include "dialog-report-column-view.h"
-#include "file-utils.h"
-#include "gnc-gkeyfile-utils.h"
 #include "gnc-guile-utils.h"
 #include "gnc-report.h"
 #include "gnc-ui.h"
 #include "option-util.h"
-#include "gnc-html.h"
 #include "window-report.h"
 #include "guile-mappings.h"
 
 #include "gnc-plugin-page-report.h"
-#include "gnc-report.h"
 
 #define WINDOW_REPORT_CM_CLASS "window-report"
 #define MDI_CHILD_CONFIG "mdi_child_config"
@@ -257,137 +253,3 @@ gnc_report_edit_options(SCM report, GtkWindow *parent)
 
     return TRUE;
 }
-
-static gboolean
-gnc_html_file_stream_cb (const char *location, char ** data, int *len)
-{
-    *len = gncReadFile (location, data);
-    return (*len > 0);
-}
-
-static gboolean
-gnc_html_report_stream_cb (const char *location, char ** data, int *len)
-{
-    gboolean ok;
-
-    ok = gnc_run_report_id_string (location, data);
-
-    if (!ok)
-    {
-        *data = g_strdup_printf ("<html><body><h3>%s</h3>"
-                                 "<p>%s</p></body></html>",
-                                 _("Report error"),
-                                 _("An error occurred while running the report."));
-
-        /* Make sure the progress bar is finished, which will also
-           make the GUI sensitive again. Easier to do this via guile
-           because otherwise we would need to link against gnome-utils
-           and a lot more. */
-        scm_c_eval_string("(gnc:report-finished)");
-    }
-
-    *len = strlen(*data);
-    return ok;
-}
-
-/* TODO: unroll start_editor */
-static gboolean
-gnc_html_options_url_cb (const char *location, const char *label,
-                         gboolean new_window, GNCURLResult *result)
-{
-    SCM report;
-    int report_id;
-
-    g_return_val_if_fail (location != NULL, FALSE);
-    g_return_val_if_fail (result != NULL, FALSE);
-
-    result->load_to_stream = FALSE;
-
-    /* href="gnc-options:report-id=2676" */
-    if (strncmp ("report-id=", location, 10) == 0)
-    {
-        if (sscanf (location + 10, "%d", &report_id) != 1)
-        {
-            result->error_message =
-                g_strdup_printf (_("Badly formed options URL: %s"), location);
-
-            return FALSE;
-        }
-
-        report = gnc_report_find(report_id);
-        if (report == SCM_UNDEFINED ||
-                report == SCM_BOOL_F)
-        {
-            result->error_message =
-                g_strdup_printf (_("Badly-formed report id: %s"), location);
-
-            return FALSE;
-        }
-
-        gnc_report_edit_options (report, GTK_WINDOW(result->parent));
-
-        return TRUE;
-    }
-    else
-    {
-        result->error_message =
-            g_strdup_printf (_("Badly formed options URL: %s"), location);
-
-        return FALSE;
-    }
-}
-
-static gboolean
-gnc_html_report_url_cb (const char *location, const char *label,
-                        gboolean new_window, GNCURLResult *result)
-{
-    g_return_val_if_fail (location != NULL, FALSE);
-    g_return_val_if_fail (result != NULL, FALSE);
-
-    /* make a new window if necessary */
-    if (new_window)
-    {
-        char *url;
-
-        url = gnc_build_url (URL_TYPE_REPORT, location, label);
-        gnc_main_window_open_report_url (url, GNC_MAIN_WINDOW(result->parent));
-        g_free (url);
-
-        result->load_to_stream = FALSE;
-    }
-    else
-    {
-        result->load_to_stream = TRUE;
-    }
-
-    return TRUE;
-}
-
-static gboolean
-gnc_html_help_url_cb (const char *location, const char *label,
-                      gboolean new_window, GNCURLResult *result)
-{
-    g_return_val_if_fail (location != NULL, FALSE);
-
-    if (label && (*label != '\0'))
-        gnc_gnome_help (location, label);
-    else
-        gnc_gnome_help (location, NULL);
-    return TRUE;
-}
-
-void
-gnc_report_init (void)
-{
-    /* Reference the report page plugin to ensure it exists in the gtk
-     * type system. */
-    GNC_TYPE_PLUGIN_PAGE_REPORT;
-
-    gnc_html_register_stream_handler (URL_TYPE_HELP, gnc_html_file_stream_cb);
-    gnc_html_register_stream_handler (URL_TYPE_FILE, gnc_html_file_stream_cb);
-    gnc_html_register_stream_handler (URL_TYPE_REPORT, gnc_html_report_stream_cb);
-
-    gnc_html_register_url_handler (URL_TYPE_OPTIONS, gnc_html_options_url_cb);
-    gnc_html_register_url_handler (URL_TYPE_REPORT, gnc_html_report_url_cb);
-    gnc_html_register_url_handler (URL_TYPE_HELP, gnc_html_help_url_cb);
-}
diff --git a/gnucash/gnome/window-report.h b/gnucash/gnome/window-report.h
index 7d4371ca1..e51bbc0a1 100644
--- a/gnucash/gnome/window-report.h
+++ b/gnucash/gnome/window-report.h
@@ -40,7 +40,5 @@ GtkWidget * gnc_report_window_default_params_editor(SCM options, SCM report, Gtk
 // scm-exposed; 3-liner which calls gnc_main_window_open_report after handling busy-cursor.
 void       reportWindow(int id, GtkWindow *parent);
 gboolean   gnc_report_edit_options(SCM report, GtkWindow *parent);
-// module[/plugin]-init
-void       gnc_report_init (void);
 
 #endif
diff --git a/gnucash/gnucash-bin.c b/gnucash/gnucash-bin.c
index 0764fde62..ff2812068 100644
--- a/gnucash/gnucash-bin.c
+++ b/gnucash/gnucash-bin.c
@@ -51,7 +51,7 @@
 #include "gnc-splash.h"
 #include "gnc-gnome-utils.h"
 #include "gnc-plugin-file-history.h"
-#include "gnc-plugin-stylesheets.h"
+#include "gnc-plugin-report-system.h"
 #include "dialog-new-user.h"
 #include "gnc-session.h"
 #include "engine-helpers-guile.h"
@@ -631,11 +631,7 @@ inner_main (void *closure, int argc, char **argv)
 
     /* Setting-up the report menu must come after the module
      loading but before the gui initializat*ion. */
-    gnc_report_init ();
-    scm_c_use_module("gnucash report reports");
-    scm_c_use_module("gnucash report-menus");
-    scm_c_eval_string("(gnc:report-menu-setup)");
-    gnc_plugin_stylesheets_create_plugin();
+    gnc_plugin_report_system_new();
 
     /* TODO: After some more guile-extraction, this should happen even
        before booting guile.  */
diff --git a/gnucash/ui/CMakeLists.txt b/gnucash/ui/CMakeLists.txt
index 72e6bbee9..0429c7dd0 100644
--- a/gnucash/ui/CMakeLists.txt
+++ b/gnucash/ui/CMakeLists.txt
@@ -25,7 +25,7 @@ set (ui_SOURCES
       gnc-plugin-register22-ui.xml
       gnc-plugin-register2-ui.xml
       gnc-plugin-register-ui.xml
-      gnc-plugin-stylesheets-ui.xml
+      gnc-plugin-report-system-ui.xml
       gnc-reconcile-window-ui.xml
       gnc-sxed-to-create-window-ui.xml
       gnc-sxed-window-ui-full.xml
diff --git a/gnucash/ui/gnc-plugin-stylesheets-ui.xml b/gnucash/ui/gnc-plugin-report-system-ui.xml
similarity index 100%
rename from gnucash/ui/gnc-plugin-stylesheets-ui.xml
rename to gnucash/ui/gnc-plugin-report-system-ui.xml
diff --git a/gnucash/ui/osx_accel_map b/gnucash/ui/osx_accel_map
index 6ca636637..b450c8f6d 100644
--- a/gnucash/ui/osx_accel_map
+++ b/gnucash/ui/osx_accel_map
@@ -217,7 +217,7 @@
 ; (gtk_accel_path "<Actions>/MenuAdditions/SampleReportwithExamplesAction" "")
 ; (gtk_accel_path "<Actions>/MenuAdditions/GeneralJournalAction" "")
 ; (gtk_accel_path "<Actions>/MenuAdditions/AssetBarchartAction" "")
-; (gtk_accel_path "<Actions>/gnc-plugin-stylesheets-actions/EditStyleSheetsAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-report-system-actions/EditStyleSheetsAction" "")
 ; (gtk_accel_path "<Actions>/gnc-plugin-account-tree-actions/ViewAccountTreeAction" "")
 ; (gtk_accel_path "<Actions>/MainWindowActions/FileExportAction" "")
 ; (gtk_accel_path "<Actions>/gnc-plugin-file-history-actions/RecentFile6Action" "")
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 32e4a7727..c598f735b 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -91,7 +91,7 @@ gnucash/gnome/gnc-plugin-page-report.c
 gnucash/gnome/gnc-plugin-page-sx-list.c
 gnucash/gnome/gnc-plugin-register2.c
 gnucash/gnome/gnc-plugin-register.c
-gnucash/gnome/gnc-plugin-stylesheets.c
+gnucash/gnome/gnc-plugin-report-system.c
 gnucash/gnome/gnc-split-reg2.c
 gnucash/gnome/gnc-split-reg.c
 gnucash/gnome/gnucash.appdata.xml.in

commit 6b5dcc3877898d33ec437c4b87fc53371be6cf63
Author: Geert Janssens <geert at kobaltwit.be>
Date:   Fri Jun 14 09:58:00 2019 +0200

    RptCleanup - reorganize stylesheets
    
    - store them in a subdirectory
    - reuse the report module loader
    - eliminate gncmod-stylesheet, gui bits are now in gnome

diff --git a/CMakeLists.txt b/CMakeLists.txt
index b712fa492..d9c08ebf5 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -905,7 +905,7 @@ set_target_properties(${_MODULES} PROPERTIES
 )
 
 if (WIN32)
-  set_target_properties(gncmod-backend-xml gncmod-stylesheets PROPERTIES
+  set_target_properties(gncmod-backend-xml PROPERTIES
     LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
   )
 endif()
diff --git a/gnucash/gnome/CMakeLists.txt b/gnucash/gnome/CMakeLists.txt
index 9e85879e6..9f340753f 100644
--- a/gnucash/gnome/CMakeLists.txt
+++ b/gnucash/gnome/CMakeLists.txt
@@ -41,6 +41,7 @@ set (gnc_gnome_noinst_HEADERS
   gnc-plugin-business.h
   gnc-plugin-register.h
   gnc-plugin-register2.h
+  gnc-plugin-stylesheets.h
   gnc-plugin-page-account-tree.h
   gnc-plugin-page-budget.h
   gnc-plugin-page-invoice.h
@@ -112,6 +113,7 @@ set (gnc_gnome_SOURCES
   gnc-plugin-business.c
   gnc-plugin-register.c
   gnc-plugin-register2.c
+  gnc-plugin-stylesheets.c
   gnc-plugin-page-account-tree.c
   gnc-plugin-page-budget.c
   gnc-plugin-page-invoice.c
diff --git a/gnucash/report/stylesheets/gnc-plugin-stylesheets.c b/gnucash/gnome/gnc-plugin-stylesheets.c
similarity index 100%
rename from gnucash/report/stylesheets/gnc-plugin-stylesheets.c
rename to gnucash/gnome/gnc-plugin-stylesheets.c
diff --git a/gnucash/report/stylesheets/gnc-plugin-stylesheets.h b/gnucash/gnome/gnc-plugin-stylesheets.h
similarity index 100%
rename from gnucash/report/stylesheets/gnc-plugin-stylesheets.h
rename to gnucash/gnome/gnc-plugin-stylesheets.h
diff --git a/gnucash/gnucash-bin.c b/gnucash/gnucash-bin.c
index 4056a9c89..0764fde62 100644
--- a/gnucash/gnucash-bin.c
+++ b/gnucash/gnucash-bin.c
@@ -51,6 +51,7 @@
 #include "gnc-splash.h"
 #include "gnc-gnome-utils.h"
 #include "gnc-plugin-file-history.h"
+#include "gnc-plugin-stylesheets.h"
 #include "dialog-new-user.h"
 #include "gnc-session.h"
 #include "engine-helpers-guile.h"
@@ -502,7 +503,6 @@ load_gnucash_modules()
         { "gnucash/import-export/bi-import", 0, TRUE},
         { "gnucash/import-export/customer-import", 0, TRUE},
         { "gnucash/report", 0, FALSE },
-        { "gnucash/report/stylesheets", 0, FALSE },
         { "gnucash/report/locale-specific", 0, FALSE },
         { "gnucash/python", 0, TRUE },
     };
@@ -635,6 +635,7 @@ inner_main (void *closure, int argc, char **argv)
     scm_c_use_module("gnucash report reports");
     scm_c_use_module("gnucash report-menus");
     scm_c_eval_string("(gnc:report-menu-setup)");
+    gnc_plugin_stylesheets_create_plugin();
 
     /* TODO: After some more guile-extraction, this should happen even
        before booting guile.  */
diff --git a/gnucash/report/gncmod-report.c b/gnucash/report/gncmod-report.c
index 5a075d788..907703253 100644
--- a/gnucash/report/gncmod-report.c
+++ b/gnucash/report/gncmod-report.c
@@ -79,6 +79,7 @@ libgncmod_report_gnc_module_init(int refcount)
     if (refcount == 0)
     {
         scm_c_eval_string("(gnc:reldate-initialize)");
+        scm_c_eval_string("(report-module-loader (list '(gnucash report stylesheets)))");
     }
 
     return TRUE;
diff --git a/gnucash/report/reports/CMakeLists.txt b/gnucash/report/reports/CMakeLists.txt
index 15b692746..93722d319 100644
--- a/gnucash/report/reports/CMakeLists.txt
+++ b/gnucash/report/reports/CMakeLists.txt
@@ -127,5 +127,7 @@ add_custom_target(scm-reports ALL DEPENDS
     scm-rpt-reports
     scm-reports-locale-specific)
 
-set_local_dist(reports_DIST_local CMakeLists.txt ${reports_SCHEME} ${reports_common_SCHEME} ${reports_standard_SCHEME} ${reports_example_SCHEME})
-set(reports_DIST ${reports_DIST_local} ${reports_locale_specific_DIST} ${reports_support_DIST} ${test_reports_standard_DIST} PARENT_SCOPE)
+set_local_dist(reports_DIST_local CMakeLists.txt ${reports_SCHEME}
+    ${reports_common_SCHEME} ${reports_standard_SCHEME} ${reports_example_SCHEME})
+set(reports_DIST ${reports_DIST_local} ${reports_locale_specific_DIST}
+    ${reports_support_DIST} ${test_reports_standard_DIST} PARENT_SCOPE)
diff --git a/gnucash/report/reports/standard/test/test-average-balance.scm b/gnucash/report/reports/standard/test/test-average-balance.scm
index 376386959..a23793181 100644
--- a/gnucash/report/reports/standard/test/test-average-balance.scm
+++ b/gnucash/report/reports/standard/test/test-average-balance.scm
@@ -6,7 +6,7 @@
 (use-modules (gnucash report))
 (use-modules (gnucash report reports standard budget))
 (use-modules (tests test-report-extras))
-(use-modules (gnucash report stylesheets))
+(use-modules (gnucash report stylesheets plain)) ; For the default stylesheet, required for rendering
 (use-modules (tests srfi64-extras))
 (use-modules (srfi srfi-1))
 (use-modules (srfi srfi-64))
diff --git a/gnucash/report/reports/standard/test/test-balsheet-pnl.scm b/gnucash/report/reports/standard/test/test-balsheet-pnl.scm
index 1944ab7e8..661b2b258 100644
--- a/gnucash/report/reports/standard/test/test-balsheet-pnl.scm
+++ b/gnucash/report/reports/standard/test/test-balsheet-pnl.scm
@@ -3,7 +3,7 @@
 (use-modules (tests test-engine-extras))
 (use-modules (gnucash report reports standard balance-sheet))
 (use-modules (gnucash report reports standard income-statement))
-(use-modules (gnucash report stylesheets))
+(use-modules (gnucash report stylesheets plain)) ; For the default stylesheet, required for rendering
 (use-modules (gnucash report))
 (use-modules (tests test-report-extras))
 (use-modules (srfi srfi-64))
diff --git a/gnucash/report/reports/standard/test/test-budget.scm b/gnucash/report/reports/standard/test/test-budget.scm
index b15c607ef..50e2d60eb 100644
--- a/gnucash/report/reports/standard/test/test-budget.scm
+++ b/gnucash/report/reports/standard/test/test-budget.scm
@@ -32,7 +32,7 @@
 (use-modules (sw_engine))
 (use-modules (gnucash report reports standard budget))
 (use-modules (tests test-report-extras))
-(use-modules (gnucash report stylesheets))
+(use-modules (gnucash report stylesheets plain)) ; For the default stylesheet, required for rendering
 (use-modules (tests test-engine-extras))
 
 ;; Explicitly set locale to make the report output predictable
diff --git a/gnucash/report/reports/standard/test/test-cashflow-barchart.scm b/gnucash/report/reports/standard/test/test-cashflow-barchart.scm
index 39a8ded15..9d0725018 100644
--- a/gnucash/report/reports/standard/test/test-cashflow-barchart.scm
+++ b/gnucash/report/reports/standard/test/test-cashflow-barchart.scm
@@ -29,7 +29,7 @@
 (use-modules (gnucash report))
 (use-modules (tests test-report-extras))
 (use-modules (gnucash report reports standard cashflow-barchart))
-(use-modules (gnucash report stylesheets))
+(use-modules (gnucash report stylesheets plain)) ; For the default stylesheet, required for rendering
 (use-modules (srfi srfi-1))
 (use-modules (srfi srfi-64))
 
diff --git a/gnucash/report/reports/standard/test/test-charts.scm b/gnucash/report/reports/standard/test/test-charts.scm
index a139d5edd..01cff66b7 100644
--- a/gnucash/report/reports/standard/test/test-charts.scm
+++ b/gnucash/report/reports/standard/test/test-charts.scm
@@ -7,7 +7,7 @@
 (use-modules (gnucash report reports standard cashflow-barchart))
 (use-modules (gnucash report reports standard price-scatter))
 (use-modules (gnucash report reports example daily-reports))
-(use-modules (gnucash report stylesheets))
+(use-modules (gnucash report stylesheets plain)) ; For the default stylesheet, required for rendering
 (use-modules (gnucash report))
 (use-modules (tests test-report-extras))
 (use-modules (srfi srfi-64))
diff --git a/gnucash/report/reports/standard/test/test-income-gst.scm b/gnucash/report/reports/standard/test/test-income-gst.scm
index ed8c09807..90fa18920 100644
--- a/gnucash/report/reports/standard/test/test-income-gst.scm
+++ b/gnucash/report/reports/standard/test/test-income-gst.scm
@@ -2,7 +2,7 @@
 (gnc:module-begin-syntax (gnc:module-load "gnucash/app-utils" 0))
 (use-modules (tests test-engine-extras))
 (use-modules (gnucash report reports standard income-gst-statement))
-(use-modules (gnucash report stylesheets))
+(use-modules (gnucash report stylesheets plain)) ; For the default stylesheet, required for rendering
 (use-modules (gnucash report))
 (use-modules (tests test-report-extras))
 (use-modules (srfi srfi-64))
diff --git a/gnucash/report/reports/standard/test/test-invoice.scm b/gnucash/report/reports/standard/test/test-invoice.scm
index f38ffbe88..d10741906 100644
--- a/gnucash/report/reports/standard/test/test-invoice.scm
+++ b/gnucash/report/reports/standard/test/test-invoice.scm
@@ -2,7 +2,7 @@
 (gnc:module-begin-syntax (gnc:module-load "gnucash/app-utils" 0))
 (use-modules (tests test-engine-extras))
 (use-modules (gnucash report reports standard invoice))
-(use-modules (gnucash report stylesheets))
+(use-modules (gnucash report stylesheets plain)) ; For the default stylesheet, required for rendering
 (use-modules (gnucash report))
 (use-modules (tests test-report-extras))
 (use-modules (srfi srfi-1))
diff --git a/gnucash/report/reports/standard/test/test-register.scm b/gnucash/report/reports/standard/test/test-register.scm
index 39dcecb36..e7c76c42a 100644
--- a/gnucash/report/reports/standard/test/test-register.scm
+++ b/gnucash/report/reports/standard/test/test-register.scm
@@ -37,7 +37,7 @@
 (use-modules (sw_engine))
 (use-modules (gnucash report reports standard register))
 (use-modules (tests test-report-extras))
-(use-modules (gnucash report stylesheets))
+(use-modules (gnucash report stylesheets plain)) ; For the default stylesheet, required for rendering
 (use-modules (tests test-engine-extras))
 
 ;; Explicitly set locale to make the report output predictable
diff --git a/gnucash/report/reports/standard/test/test-standard-category-report.scm b/gnucash/report/reports/standard/test/test-standard-category-report.scm
index e40720ae0..ead8da8aa 100644
--- a/gnucash/report/reports/standard/test/test-standard-category-report.scm
+++ b/gnucash/report/reports/standard/test/test-standard-category-report.scm
@@ -38,7 +38,7 @@
 (use-modules (gnucash report reports standard net-charts))
 (use-modules (tests test-report-extras))
 (use-modules (gnucash report reports standard category-barchart))
-(use-modules (gnucash report stylesheets))
+(use-modules (gnucash report stylesheets plain)) ; For the default stylesheet, required for rendering
 (use-modules (tests test-engine-extras))
 
 ;; Explicitly set locale to make the report output predictable
diff --git a/gnucash/report/reports/standard/test/test-standard-net-barchart.scm b/gnucash/report/reports/standard/test/test-standard-net-barchart.scm
index 41a9db49a..b9aac203a 100644
--- a/gnucash/report/reports/standard/test/test-standard-net-barchart.scm
+++ b/gnucash/report/reports/standard/test/test-standard-net-barchart.scm
@@ -23,7 +23,7 @@
 (use-modules (sw_engine))
 (use-modules (srfi srfi-1))
 (use-modules (srfi srfi-64))
-(use-modules (gnucash report stylesheets))
+(use-modules (gnucash report stylesheets plain)) ; For the default stylesheet, required for rendering
 (use-modules (tests test-engine-extras))
 (use-modules (tests srfi64-extras))
 (use-modules (tests test-report-extras))
diff --git a/gnucash/report/reports/standard/test/test-standard-net-linechart.scm b/gnucash/report/reports/standard/test/test-standard-net-linechart.scm
index 211095a4d..fda989f44 100644
--- a/gnucash/report/reports/standard/test/test-standard-net-linechart.scm
+++ b/gnucash/report/reports/standard/test/test-standard-net-linechart.scm
@@ -23,7 +23,7 @@
 (use-modules (sw_engine))
 (use-modules (srfi srfi-1))
 (use-modules (srfi srfi-64))
-(use-modules (gnucash report stylesheets))
+(use-modules (gnucash report stylesheets plain)) ; For the default stylesheet, required for rendering
 (use-modules (tests test-engine-extras))
 (use-modules (tests srfi64-extras))
 (use-modules (tests test-report-extras))
diff --git a/gnucash/report/reports/standard/test/test-stress-options.scm b/gnucash/report/reports/standard/test/test-stress-options.scm
index c5d43638a..45c4b43ff 100644
--- a/gnucash/report/reports/standard/test/test-stress-options.scm
+++ b/gnucash/report/reports/standard/test/test-stress-options.scm
@@ -5,7 +5,7 @@
 (gnc:module-begin-syntax (gnc:module-load "gnucash/app-utils" 0))
 (use-modules (tests test-engine-extras))
 (use-modules (gnucash report reports standard view-column))
-(use-modules (gnucash report stylesheets))
+(use-modules (gnucash report stylesheets plain)) ; For the default stylesheet, required for rendering
 (use-modules (gnucash report reports standard taxinvoice))
 (use-modules (gnucash report))
 (use-modules (tests test-report-extras))
diff --git a/gnucash/report/reports/standard/test/test-transaction.scm b/gnucash/report/reports/standard/test/test-transaction.scm
index 8b728c4e8..ebcb5cc6b 100644
--- a/gnucash/report/reports/standard/test/test-transaction.scm
+++ b/gnucash/report/reports/standard/test/test-transaction.scm
@@ -3,7 +3,7 @@
 (use-modules (tests test-engine-extras))
 (use-modules (gnucash report reports standard transaction))
 (use-modules (gnucash report reports standard reconcile-report))
-(use-modules (gnucash report stylesheets))
+(use-modules (gnucash report stylesheets plain)) ; For the default stylesheet, required for rendering
 (use-modules (gnucash report))
 (use-modules (tests test-report-extras))
 (use-modules (srfi srfi-64))
diff --git a/gnucash/report/stylesheets/CMakeLists.txt b/gnucash/report/stylesheets/CMakeLists.txt
index 714efe222..3a925cd44 100644
--- a/gnucash/report/stylesheets/CMakeLists.txt
+++ b/gnucash/report/stylesheets/CMakeLists.txt
@@ -1,58 +1,13 @@
-add_subdirectory(test)
 
-set(stylesheets_SOURCES
-  gnc-plugin-stylesheets.c
-  gncmod-stylesheets.c
+set(stylesheets_SCHEME
+  plain.scm
+  fancy.scm
+  footer.scm
+  easy.scm
+  head-or-tail.scm
 )
 
-set(stylesheets_noinst_HEADERS
-  gnc-plugin-stylesheets.h
-)
-
-add_library(gncmod-stylesheets MODULE ${stylesheets_SOURCES} ${stylesheets_noinst_HEADERS})
-
-target_link_libraries(gncmod-stylesheets gnc-gnome gncmod-report gncmod-gnome-utils gnc-module
-    ${GUILE_LDFLAGS} ${GTK3_LDFLAGS} ${GLIB2_LDFLAGS})
-
-target_compile_definitions(gncmod-stylesheets PRIVATE -DG_LOG_DOMAIN=\"gnc.report.core\")
-
-target_include_directories(gncmod-stylesheets
-  PRIVATE
-    ${CMAKE_SOURCE_DIR}/gnucash/gnome
-)
-
-set(LIB_DIR ${CMAKE_INSTALL_LIBDIR}/gnucash)
-if (WIN32)
-  set(LIB_DIR ${CMAKE_INSTALL_BINDIR})
-endif(WIN32)
-
-
-if (APPLE)
-  set_target_properties (gncmod-stylesheets PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/gnucash")
-endif()
-
-install(TARGETS gncmod-stylesheets
-  LIBRARY DESTINATION ${LIB_DIR}
-  ARCHIVE DESTINATION ${LIB_DIR}
-  RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
-
-# No headers to install
-
-# Scheme
-
-set(stylesheets_SCHEME_1
-  stylesheet-plain.scm
-  stylesheet-fancy.scm
-  stylesheet-footer.scm
-  stylesheet-easy.scm
-  stylesheet-head-or-tail.scm
-)
-
-set(stylesheets_SCHEME_2
-  stylesheets.scm
-)
-
-set(GUILE_OUTPUT_DIR gnucash/report)
+set(GUILE_OUTPUT_DIR gnucash/report/stylesheets)
 set(GUILE_DEPENDS
   scm-gnc-module
   scm-core-utils
@@ -63,23 +18,14 @@ set(GUILE_DEPENDS
   )
 
 gnc_add_scheme_targets(scm-report-stylesheets-1
-  "${stylesheets_SCHEME_1}"
+  "${stylesheets_SCHEME}"
   ${GUILE_OUTPUT_DIR}
   "${GUILE_DEPENDS}"
   TRUE
 )
 
-gnc_add_scheme_targets(scm-report-stylesheets-2
-  "${stylesheets_SCHEME_2}"
-  ${GUILE_OUTPUT_DIR}
-  "scm-report-stylesheets-1;${GUILE_DEPENDS}"
-  TRUE
-)
-
-add_custom_target(scm-report-stylesheets ALL DEPENDS scm-report-stylesheets-1 scm-report-stylesheets-2)
+add_custom_target(scm-report-stylesheets ALL DEPENDS scm-report-stylesheets-1)
 
-set_local_dist(stylesheets_DIST_local CMakeLists.txt
-        ${stylesheets_SOURCES} ${stylesheets_noinst_HEADERS}
-        ${stylesheets_SCHEME_1} ${stylesheets_SCHEME_2})
+set_local_dist(stylesheets_DIST_local CMakeLists.txt ${stylesheets_SCHEME})
 
-set(stylesheets_DIST ${stylesheets_DIST_local} ${test_stylesheets_DIST} PARENT_SCOPE)
+set(stylesheets_DIST ${stylesheets_DIST_local} PARENT_SCOPE)
diff --git a/gnucash/report/stylesheets/stylesheet-easy.scm b/gnucash/report/stylesheets/easy.scm
similarity index 99%
rename from gnucash/report/stylesheets/stylesheet-easy.scm
rename to gnucash/report/stylesheets/easy.scm
index 6370a803d..b6b80d38e 100644
--- a/gnucash/report/stylesheets/stylesheet-easy.scm
+++ b/gnucash/report/stylesheets/easy.scm
@@ -27,7 +27,7 @@
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 
-(define-module (gnucash report stylesheet-easy))
+(define-module (gnucash report stylesheets easy))
 
 (use-modules (gnucash utilities))
 (use-modules (gnucash gnc-module))
diff --git a/gnucash/report/stylesheets/stylesheet-fancy.scm b/gnucash/report/stylesheets/fancy.scm
similarity index 99%
rename from gnucash/report/stylesheets/stylesheet-fancy.scm
rename to gnucash/report/stylesheets/fancy.scm
index fa7191aaa..9881cb08d 100644
--- a/gnucash/report/stylesheets/stylesheet-fancy.scm
+++ b/gnucash/report/stylesheets/fancy.scm
@@ -21,7 +21,7 @@
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 
-(define-module (gnucash report stylesheet-fancy))
+(define-module (gnucash report stylesheets fancy))
 
 (use-modules (gnucash utilities))
 (use-modules (gnucash gnc-module))
diff --git a/gnucash/report/stylesheets/stylesheet-footer.scm b/gnucash/report/stylesheets/footer.scm
similarity index 99%
rename from gnucash/report/stylesheets/stylesheet-footer.scm
rename to gnucash/report/stylesheets/footer.scm
index 143891ace..383e89bcd 100644
--- a/gnucash/report/stylesheets/stylesheet-footer.scm
+++ b/gnucash/report/stylesheets/footer.scm
@@ -32,7 +32,7 @@
 ;
 
 
-(define-module (gnucash report stylesheet-footer))
+(define-module (gnucash report stylesheets footer))
 
 (use-modules (gnucash utilities))
 (use-modules (gnucash gnc-module))
diff --git a/gnucash/report/stylesheets/gncmod-stylesheets.c b/gnucash/report/stylesheets/gncmod-stylesheets.c
deleted file mode 100644
index 3758d832e..000000000
--- a/gnucash/report/stylesheets/gncmod-stylesheets.c
+++ /dev/null
@@ -1,86 +0,0 @@
-/*********************************************************************
- * gncmod-stylesheets.c
- * module definition/initialization for the standard reports
- *
- * Copyright (c) 2001 Linux Developers Group, Inc.
- *********************************************************************/
-/********************************************************************\
- * This program is free software; you can redistribute it and/or    *
- * modify it under the terms of the GNU General Public License as   *
- * published by the Free Software Foundation; either version 2 of   *
- * the License, or (at your option) any later version.              *
- *                                                                  *
- * This program 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 General Public License for more details.                     *
- *                                                                  *
- * You should have received a copy of the GNU General Public License*
- * along with this program; if not, contact:                        *
- *                                                                  *
- * Free Software Foundation           Voice:  +1-617-542-5942       *
- * 51 Franklin Street, Fifth Floor    Fax:    +1-617-542-2652       *
- * Boston, MA  02110-1301,  USA       gnu at gnu.org                   *
- *                                                                  *
-\********************************************************************/
-
-
-#include <config.h>
-
-#include <gmodule.h>
-#include <libguile.h>
-
-#include "gnc-module.h"
-#include "gnc-module-api.h"
-#include "gnc-plugin-stylesheets.h"
-
-GNC_MODULE_API_DECL(libgncmod_stylesheets)
-
-/* version of the gnc module system interface we require */
-int libgncmod_stylesheets_gnc_module_system_interface = 0;
-
-/* module versioning uses libtool semantics. */
-int libgncmod_stylesheets_gnc_module_current  = 0;
-int libgncmod_stylesheets_gnc_module_revision = 0;
-int libgncmod_stylesheets_gnc_module_age      = 0;
-
-
-char *
-libgncmod_stylesheets_gnc_module_path(void)
-{
-    return g_strdup("gnucash/report/stylesheets");
-}
-
-char *
-libgncmod_stylesheets_gnc_module_description(void)
-{
-    return g_strdup("Standard report stylesheet definitions");
-}
-
-int
-libgncmod_stylesheets_gnc_module_init(int refcount)
-{
-    /* load the report system */
-    if (!gnc_module_load("gnucash/report", 0))
-    {
-        return FALSE;
-    }
-
-    /* load the report generation scheme code */
-    if (scm_c_eval_string("(use-modules (gnucash report stylesheets))") ==
-            SCM_BOOL_F)
-    {
-        return FALSE;
-    }
-
-    /* Add menu items with C callbacks */
-    gnc_plugin_stylesheets_create_plugin();
-
-    return TRUE;
-}
-
-int
-libgncmod_stylesheets_gnc_module_end(int refcount)
-{
-    return TRUE;
-}
diff --git a/gnucash/report/stylesheets/stylesheet-head-or-tail.scm b/gnucash/report/stylesheets/head-or-tail.scm
similarity index 99%
rename from gnucash/report/stylesheets/stylesheet-head-or-tail.scm
rename to gnucash/report/stylesheets/head-or-tail.scm
index 1eaeaf305..3412acd9e 100644
--- a/gnucash/report/stylesheets/stylesheet-head-or-tail.scm
+++ b/gnucash/report/stylesheets/head-or-tail.scm
@@ -33,7 +33,7 @@
 ;
 
 
-(define-module (gnucash report stylesheet-head-or-tail))
+(define-module (gnucash report stylesheets head-or-tail))
 
 (use-modules (gnucash utilities))
 (use-modules (gnucash gnc-module))
diff --git a/gnucash/report/stylesheets/stylesheet-plain.scm b/gnucash/report/stylesheets/plain.scm
similarity index 99%
rename from gnucash/report/stylesheets/stylesheet-plain.scm
rename to gnucash/report/stylesheets/plain.scm
index 4eca60778..b69edfbbb 100644
--- a/gnucash/report/stylesheets/stylesheet-plain.scm
+++ b/gnucash/report/stylesheets/plain.scm
@@ -22,7 +22,7 @@
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 
-(define-module (gnucash report stylesheet-plain))
+(define-module (gnucash report stylesheets plain))
 
 (use-modules (gnucash utilities))
 (use-modules (gnucash gnc-module))
diff --git a/gnucash/report/stylesheets/stylesheets.scm b/gnucash/report/stylesheets/stylesheets.scm
deleted file mode 100644
index 3f810a7eb..000000000
--- a/gnucash/report/stylesheets/stylesheets.scm
+++ /dev/null
@@ -1,34 +0,0 @@
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;;  stylesheets.scm
-;;  load the standard stylesheet definitions
-;;
-;;  Copyright (c) 2001 Linux Developers Group, Inc.
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;; This program is free software; you can redistribute it and/or
-;; modify it under the terms of the GNU General Public License as
-;; published by the Free Software Foundation; either version 2 of
-;; the License, or (at your option) any later version.
-;;
-;; This program 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 General Public License for more details.
-;;
-;; You should have received a copy of the GNU General Public License
-;; along with this program; if not, contact:
-;;
-;; Free Software Foundation           Voice:  +1-617-542-5942
-;; 51 Franklin Street, Fifth Floor    Fax:    +1-617-542-2652
-;; Boston, MA  02110-1301,  USA       gnu at gnu.org
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
-
-(define-module (gnucash report stylesheets))
-
-(use-modules (gnucash utilities))
-(use-modules (gnucash report stylesheet-plain))
-(use-modules (gnucash report stylesheet-fancy))
-(use-modules (gnucash report stylesheet-footer))
-(use-modules (gnucash report stylesheet-easy))
-(use-modules (gnucash report stylesheet-head-or-tail))
diff --git a/gnucash/report/stylesheets/test/CMakeLists.txt b/gnucash/report/stylesheets/test/CMakeLists.txt
deleted file mode 100644
index 76ca7014d..000000000
--- a/gnucash/report/stylesheets/test/CMakeLists.txt
+++ /dev/null
@@ -1,25 +0,0 @@
-set(GUILE_DEPENDS
-  scm-test-core
-  scm-gettext
-  scm-core-utils
-  scm-gnc-module
-  scm-scm
-  scm-engine
-  gncmod-backend-xml
-  scm-gnome-utils
-  gncmod-html
-  scm-report
-  scm-gnome
-  scm-report-stylesheets
-)
-
-gnc_add_scheme_test_targets(scm-test-load-report-stylesheets-module
-  "test-load-report-stylesheets-module.scm"
-  "tests"
-  "${GUILE_DEPENDS}"
-  FALSE
-  )
-
-gnc_add_scheme_tests("test-load-report-stylesheets-module.scm")
-
-set_dist_list(test_stylesheets_DIST CMakeLists.txt test-load-report-stylesheets-module.scm)
diff --git a/gnucash/report/stylesheets/test/test-load-report-stylesheets-module.scm b/gnucash/report/stylesheets/test/test-load-report-stylesheets-module.scm
deleted file mode 100755
index 570d8648f..000000000
--- a/gnucash/report/stylesheets/test/test-load-report-stylesheets-module.scm
+++ /dev/null
@@ -1,23 +0,0 @@
-(setenv "GNC_UNINSTALLED" "1")
-(display "  testing stylesheet module load ... ")
-(use-modules (tests unittest-support))
-(define log-domain "gnc.report.core")
-(define check (new-TestErrorStruct))
-(define log-level (G-LOG-LEVEL-CRITICAL))
-(define msg "gnc_get_default_report_font_family: assertion `top_list != NULL' failed")
-(TestErrorStruct-log-domain-set check log-domain)
-(TestErrorStruct-log-level-set check log-level)
-(TestErrorStruct-msg-set check msg)
-(define handler (test-set-checked-handler log-domain log-level check))
-(use-modules (gnucash gnc-module))
-(gnc:module-system-init)
-
-(if (gnc:module-load "gnucash/report/stylesheets" 0)
-    (begin
-      (g-log-remove-handler log-domain handler)
-      (display "ok\n")
-      (exit 0))
-    (begin
-      (g-log-remove-handler log-domain handler)
-      (display "failed\n")
-      (exit -1)))
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 3e2ee7c02..32e4a7727 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -91,6 +91,7 @@ gnucash/gnome/gnc-plugin-page-report.c
 gnucash/gnome/gnc-plugin-page-sx-list.c
 gnucash/gnome/gnc-plugin-register2.c
 gnucash/gnome/gnc-plugin-register.c
+gnucash/gnome/gnc-plugin-stylesheets.c
 gnucash/gnome/gnc-split-reg2.c
 gnucash/gnome/gnc-split-reg.c
 gnucash/gnome/gnucash.appdata.xml.in
@@ -494,14 +495,11 @@ gnucash/report/reports/support/receipt.eguile.scm
 gnucash/report/reports/support/taxinvoice.eguile.scm
 gnucash/report/report.scm
 gnucash/report/report-utilities.scm
-gnucash/report/stylesheets/gncmod-stylesheets.c
-gnucash/report/stylesheets/gnc-plugin-stylesheets.c
-gnucash/report/stylesheets/stylesheet-easy.scm
-gnucash/report/stylesheets/stylesheet-fancy.scm
-gnucash/report/stylesheets/stylesheet-footer.scm
-gnucash/report/stylesheets/stylesheet-head-or-tail.scm
-gnucash/report/stylesheets/stylesheet-plain.scm
-gnucash/report/stylesheets/stylesheets.scm
+gnucash/report/stylesheets/easy.scm
+gnucash/report/stylesheets/fancy.scm
+gnucash/report/stylesheets/footer.scm
+gnucash/report/stylesheets/head-or-tail.scm
+gnucash/report/stylesheets/plain.scm
 gnucash/report/trep-engine.scm
 libgnucash/app-utils/app-utils.scm
 libgnucash/app-utils/business-helpers.c

commit 93489d4ffc627b4a42bb68342c83b368872f0240
Author: Geert Janssens <geert at kobaltwit.be>
Date:   Fri Jun 14 09:21:15 2019 +0200

    RptCleanup - Generalize report loading function to allow use for modules other than the reports

diff --git a/gnucash/report/report.scm b/gnucash/report/report.scm
index a6c5ca580..8e59f3241 100644
--- a/gnucash/report/report.scm
+++ b/gnucash/report/report.scm
@@ -791,4 +791,71 @@
 (define category-barchart-expense-uuid "b1f15b2052c149df93e698fe85a81ea6")
 (define category-barchart-asset-uuid "e9cf815f79db44bcb637d0295093ae3d")
 (define category-barchart-liability-uuid "faf410e8f8da481fbc09e4763da40bcc")
+
+(export report-module-loader)
+;; Given a list of module prefixes, load all guile modules with these prefixes
+;; This assumes the modules are located on the file system in a
+;; path matching the module prefix
+;; For example passing
+;; '('(gnucash report stylesheets) '(gnucash report reports standard))
+;; will search for scm files in
+;; - <gnc-guile-dir>/gnucash/report/stylesheets
+;; - <gnc-guile-dir>/gnucash/report/reports/standard
+;; and try to load them.
+;; This function is non-recursive so it won't
+;; descend in subdirectories.
+(define (report-module-loader mod-prefix-list)
+
+  ;; Returns a list of files in a directory
+  ;;
+  ;; Param:
+  ;;   dir - directory name
+  ;;
+  ;; Return value:
+  ;;   list of files in the directory
+  (define (directory-files dir)
+    (cond
+      ((file-exists? dir)
+       (let ((dir-stream (opendir dir)))
+            (let loop ((fname (readdir dir-stream))
+                       (acc '()))
+                      (cond
+                        ((eof-object? fname)
+                         (closedir dir-stream)
+                         acc)
+                        (else
+                          (loop (readdir dir-stream)
+                                (if (string-suffix? ".scm" fname)
+                                    (cons (string-drop-right fname 4) acc)
+                                    acc)))))))
+      (else
+        (gnc:warn "Can't access " dir ".\nEmpty list will be returned.")
+        '())))
+
+    ;; Return a list of symbols representing modules in the directory
+    ;; matching the prefix
+    ;;
+    ;; Return value:
+    ;;  List of symbols for modules
+  (define (get-module-list mod-prefix)
+    (let* ((subdir (string-join (map symbol->string mod-prefix) "/"))
+           (mod-dir (gnc-build-scm-path subdir))
+           (mod-list (directory-files mod-dir)))
+          (gnc:debug "rpt-subdir=" subdir)
+          (gnc:debug "mod-dir=" mod-dir)
+          (gnc:debug "dir-files=" mod-list)
+     (map string->symbol mod-list)))
+
+  (for-each
+    (lambda (mod-prefix)
+      (for-each
+        (lambda (mod-file)
+                (let* ((module (append mod-prefix (list mod-file))))
+                      (module-use!
+                       (current-module)
+                       (resolve-interface module))))
+        (get-module-list mod-prefix)))
+    mod-prefix-list))
+
+;; Add hooks when this module is loaded
 (gnc-hook-add-scm-dangler HOOK-SAVE-OPTIONS gnc:save-style-sheet-options)
diff --git a/gnucash/report/reports/aging.scm b/gnucash/report/reports/aging.scm
index f73dc1be2..c9359d9c5 100644
--- a/gnucash/report/reports/aging.scm
+++ b/gnucash/report/reports/aging.scm
@@ -32,8 +32,6 @@
 
 (gnc:module-load "gnucash/report" 0)
 
-(use-modules (gnucash report reports))
-
 (define optname-to-date (N_ "To"))
 (define optname-sort-by (N_ "Sort By"))
 (define optname-sort-order (N_ "Sort Order"))
diff --git a/gnucash/report/reports/reports.scm b/gnucash/report/reports/reports.scm
index f5dbf453b..135633628 100644
--- a/gnucash/report/reports/reports.scm
+++ b/gnucash/report/reports/reports.scm
@@ -42,60 +42,11 @@
 ;owner-report-create)
 
 (define report-dirs (list
-    "standard" ; base directory for standard reports included in gnucash
-    "example"  ; base directory for example reports included in gnucash
+    '(gnucash report reports standard) ; base directory for standard reports included in gnucash
+    '(gnucash report reports example)  ; base directory for example reports included in gnucash
 ))
 
-;; Returns a list of files in a directory
-;;
-;; Param:
-;;   dir - directory name
-;;
-;; Return value:
-;;   list of files in the directory
-
-(define (directory-files dir)
-  (cond
-   ((file-exists? dir)
-    (let ((dir-stream (opendir dir)))
-      (let loop ((fname (readdir dir-stream))
-                 (acc '()))
-        (cond
-         ((eof-object? fname)
-          (closedir dir-stream)
-          acc)
-         (else
-          (loop (readdir dir-stream)
-                (if (string-suffix? ".scm" fname)
-                    (cons (string-drop-right fname 4) acc)
-                    acc)))))))
-   (else
-    (gnc:warn "Can't access " dir ".\nEmpty list will be returned.")
-    '())))
-
-;; Return a list of symbols representing reports in the standard reports directory
-;;
-;; Return value:
-;;  List of symbols for reports
-(define (get-report-list subdir)
-  (let* ((rpt-dir (gnc-build-reports-path subdir))
-         (rpt-list (directory-files rpt-dir)))
-        (gnc:debug "rpt-subdir=" subdir)
-        (gnc:debug "rpt-dir=" rpt-dir)
-        (gnc:debug "dir-files=" rpt-list)
-        rpt-list))
-
-(for-each
-  (lambda (rpt-dir-str)
-    (for-each
-     (lambda (rpt-file-str)
-       (let ((rpt-file (string->symbol rpt-file-str))
-             (rpt-dir (string->symbol rpt-dir-str)))
-       (module-use!
-        (current-module)
-        (resolve-interface `(gnucash report reports ,rpt-dir ,rpt-file)))))
-     (get-report-list rpt-dir-str)))
-  report-dirs)
+(report-module-loader report-dirs)
 
 (use-modules (gnucash gnc-module))
 (gnc:module-load "gnucash/engine" 0)
diff --git a/gnucash/report/reports/standard/customer-summary.scm b/gnucash/report/reports/standard/customer-summary.scm
index e7f4ee8be..22c2871c8 100644
--- a/gnucash/report/reports/standard/customer-summary.scm
+++ b/gnucash/report/reports/standard/customer-summary.scm
@@ -34,7 +34,6 @@
 (use-modules (gnucash gettext))
 
 (gnc:module-load "gnucash/report" 0)
-(use-modules (gnucash report reports))
 
 ;; Option names
 (define optname-from-date (N_ "From"))
diff --git a/gnucash/report/reports/standard/invoice.scm b/gnucash/report/reports/standard/invoice.scm
index 78f7ef0b7..ea3fa108b 100644
--- a/gnucash/report/reports/standard/invoice.scm
+++ b/gnucash/report/reports/standard/invoice.scm
@@ -30,7 +30,6 @@
 (use-modules (gnucash utilities))
 
 (gnc:module-load "gnucash/report" 0)
-(use-modules (gnucash report reports))
 
 (define (addif pred . data) (if pred data '()))
 
diff --git a/gnucash/report/reports/standard/job-report.scm b/gnucash/report/reports/standard/job-report.scm
index 15211fb02..b8dad6f8e 100644
--- a/gnucash/report/reports/standard/job-report.scm
+++ b/gnucash/report/reports/standard/job-report.scm
@@ -32,7 +32,6 @@
 (use-modules (gnucash gettext))
 
 (gnc:module-load "gnucash/report" 0)
-(use-modules (gnucash report reports))
 
 (define acct-string (N_ "Account"))
 (define owner-string (N_ "Job"))
diff --git a/gnucash/report/reports/standard/owner-report.scm b/gnucash/report/reports/standard/owner-report.scm
index 1abfb72e6..072da64af 100644
--- a/gnucash/report/reports/standard/owner-report.scm
+++ b/gnucash/report/reports/standard/owner-report.scm
@@ -33,7 +33,6 @@
 (use-modules (gnucash gettext))
 
 (gnc:module-load "gnucash/report" 0)
-(use-modules (gnucash report reports))
 
 ;; Option names
 (define optname-from-date (N_ "From"))
diff --git a/gnucash/report/reports/standard/payables.scm b/gnucash/report/reports/standard/payables.scm
index 2bc7e00d2..16818262c 100644
--- a/gnucash/report/reports/standard/payables.scm
+++ b/gnucash/report/reports/standard/payables.scm
@@ -32,7 +32,6 @@
 (gnc:module-load "gnucash/report" 0)
 
 (use-modules (gnucash report reports aging))
-(use-modules (gnucash report reports))
 
 (define acc-page gnc:pagename-general)
 (define this-acc (N_ "Payable Account"))
diff --git a/gnucash/report/reports/standard/receipt.scm b/gnucash/report/reports/standard/receipt.scm
index 906aa4acc..df2955060 100644
--- a/gnucash/report/reports/standard/receipt.scm
+++ b/gnucash/report/reports/standard/receipt.scm
@@ -24,8 +24,6 @@
 (gnc:module-load "gnucash/html" 0)
 (gnc:module-load "gnucash/engine" 0)
 
-(use-modules (gnucash report reports))
-
 (use-modules (gnucash report eguile-utilities))
 (use-modules (gnucash report eguile-html-utilities))
 (use-modules (gnucash report eguile-gnc))
diff --git a/gnucash/report/reports/standard/receivables.scm b/gnucash/report/reports/standard/receivables.scm
index ace0a5419..167c177f3 100644
--- a/gnucash/report/reports/standard/receivables.scm
+++ b/gnucash/report/reports/standard/receivables.scm
@@ -32,7 +32,6 @@
 (gnc:module-load "gnucash/report" 0)
 
 (use-modules (gnucash report reports aging))
-(use-modules (gnucash report reports))
 
 (define acc-page gnc:pagename-general)
 (define this-acc (N_ "Receivables Account"))
diff --git a/gnucash/report/reports/standard/taxinvoice.scm b/gnucash/report/reports/standard/taxinvoice.scm
index cab5900b9..0129b6a96 100644
--- a/gnucash/report/reports/standard/taxinvoice.scm
+++ b/gnucash/report/reports/standard/taxinvoice.scm
@@ -32,8 +32,6 @@
 (gnc:module-load "gnucash/html" 0)
 (gnc:module-load "gnucash/engine" 0)
 
-(use-modules (gnucash report reports))
-
 (use-modules (gnucash report eguile-utilities))
 (use-modules (gnucash report eguile-html-utilities))
 (use-modules (gnucash report eguile-gnc))
diff --git a/gnucash/report/reports/standard/test/test-stress-options.scm b/gnucash/report/reports/standard/test/test-stress-options.scm
index 54bdaa325..c5d43638a 100644
--- a/gnucash/report/reports/standard/test/test-stress-options.scm
+++ b/gnucash/report/reports/standard/test/test-stress-options.scm
@@ -4,7 +4,6 @@
 (use-modules (gnucash gnc-module))
 (gnc:module-begin-syntax (gnc:module-load "gnucash/app-utils" 0))
 (use-modules (tests test-engine-extras))
-(use-modules (gnucash report reports))
 (use-modules (gnucash report reports standard view-column))
 (use-modules (gnucash report stylesheets))
 (use-modules (gnucash report reports standard taxinvoice))
diff --git a/libgnucash/core-utils/core-utils.i b/libgnucash/core-utils/core-utils.i
index c14b3721c..a2b618934 100644
--- a/libgnucash/core-utils/core-utils.i
+++ b/libgnucash/core-utils/core-utils.i
@@ -74,6 +74,7 @@ gchar * gnc_build_userdata_path(const gchar *);
 %newobject gnc_file_path_absolute;
 gchar *gnc_file_path_absolute (const gchar *, const gchar *);
 
+gchar * gnc_build_scm_path(const gchar *);
 gchar * gnc_build_report_path(const gchar *);
 gchar * gnc_build_stdreports_path(const gchar *);
 gchar * gnc_build_reports_path(const gchar *);
diff --git a/libgnucash/core-utils/core-utils.scm b/libgnucash/core-utils/core-utils.scm
index a36cd22a2..95716d732 100644
--- a/libgnucash/core-utils/core-utils.scm
+++ b/libgnucash/core-utils/core-utils.scm
@@ -39,6 +39,7 @@
 (re-export gnc-path-get-stdreportsdir)
 (re-export gnc-path-find-localized-html-file)
 (re-export gnc-build-userdata-path)
+(re-export gnc-build-scm-path)
 (re-export gnc-build-report-path)
 (re-export gnc-build-stdreports-path)
 (re-export gnc-build-reports-path)
diff --git a/libgnucash/core-utils/gnc-filepath-utils.cpp b/libgnucash/core-utils/gnc-filepath-utils.cpp
index 2b0dcb054..cc317ee95 100644
--- a/libgnucash/core-utils/gnc-filepath-utils.cpp
+++ b/libgnucash/core-utils/gnc-filepath-utils.cpp
@@ -1165,6 +1165,22 @@ gnc_build_data_path (const gchar *filename)
     return g_strdup(path.c_str());
 }
 
+/** @fn gchar * gnc_build_scm_path (const gchar *filename)
+ *  @brief Make a path to filename in the scm directory.
+ *
+ * @param filename The name of the file
+ *
+ *  @return An absolute path. The returned string should be freed by the user
+ *  using g_free().
+ */
+
+gchar *
+gnc_build_scm_path (const gchar *filename)
+{
+    gchar *result = g_build_filename(gnc_path_get_scmdir(), filename, (gchar *)NULL);
+    return result;
+}
+
 /** @fn gchar * gnc_build_report_path (const gchar *filename)
  *  @brief Make a path to filename in the report directory.
  *
diff --git a/libgnucash/core-utils/gnc-filepath-utils.h b/libgnucash/core-utils/gnc-filepath-utils.h
index 1c73c8cb6..f88cd3205 100644
--- a/libgnucash/core-utils/gnc-filepath-utils.h
+++ b/libgnucash/core-utils/gnc-filepath-utils.h
@@ -110,6 +110,7 @@ gchar *gnc_build_userconfig_path (const gchar *filename);
 gchar *gnc_build_book_path (const gchar *filename);
 gchar *gnc_build_translog_path (const gchar *filename);
 gchar *gnc_build_data_path (const gchar *filename);
+gchar *gnc_build_scm_path (const gchar *filename);
 gchar *gnc_build_report_path (const gchar *filename);
 gchar *gnc_build_reports_path (const gchar *dirname);
 gchar *gnc_build_stdreports_path (const gchar *filename);

commit f2de292cd631fc8b085723345d1720e6a60de171
Author: Geert Janssens <geert at kobaltwit.be>
Date:   Wed Jun 12 21:36:33 2019 +0200

    RptCleanup - Move locale-specific reports to reports directory

diff --git a/.gitignore b/.gitignore
index b22d3ea74..fc9e97b99 100644
--- a/.gitignore
+++ b/.gitignore
@@ -171,8 +171,8 @@ gnucash/register/ledger-core/test/test-link-module
 gnucash/register/register-core/test/test-link-module
 gnucash/register/register-gnome/test/test-link-module
 gnucash/report/business-reports/gnucash
-gnucash/report/locale-specific/us/gnucash
-gnucash/report/locale-specific/us/test/test-link-module
+gnucash/report/locale-specific/gnucash
+gnucash/report/locale-specific/test/test-link-module
 gnucash/report/gnucash
 gnucash/report/test/test-link-module
 gnucash/report/reports/gnucash
diff --git a/gnucash/gnucash-bin.c b/gnucash/gnucash-bin.c
index e6cb432e5..4056a9c89 100644
--- a/gnucash/gnucash-bin.c
+++ b/gnucash/gnucash-bin.c
@@ -503,7 +503,7 @@ load_gnucash_modules()
         { "gnucash/import-export/customer-import", 0, TRUE},
         { "gnucash/report", 0, FALSE },
         { "gnucash/report/stylesheets", 0, FALSE },
-        { "gnucash/report/locale-specific/us", 0, FALSE },
+        { "gnucash/report/locale-specific", 0, FALSE },
         { "gnucash/python", 0, TRUE },
     };
 
diff --git a/gnucash/report/CMakeLists.txt b/gnucash/report/CMakeLists.txt
index ba613a4be..e3e025ccc 100644
--- a/gnucash/report/CMakeLists.txt
+++ b/gnucash/report/CMakeLists.txt
@@ -1,6 +1,5 @@
 
 add_subdirectory(jqplot)
-add_subdirectory(locale-specific)
 add_subdirectory(reports)
 add_subdirectory(stylesheets)
 add_subdirectory(test)
@@ -119,5 +118,5 @@ set_local_dist(report_DIST_local CMakeLists.txt
   ${report_SCHEME} ${report_SCHEME_1}
   ${report_SCHEME_2} ${report_SCHEME_3})
 
-set(report_DIST ${report_DIST_local} ${jqplot_DIST} ${locale_specific_DIST}
+set(report_DIST ${report_DIST_local} ${jqplot_DIST}
                 ${reports_DIST} ${stylesheets_DIST} ${test_report_DIST} PARENT_SCOPE)
diff --git a/gnucash/report/locale-specific/CMakeLists.txt b/gnucash/report/locale-specific/CMakeLists.txt
deleted file mode 100644
index e1240d741..000000000
--- a/gnucash/report/locale-specific/CMakeLists.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-add_subdirectory(us)
-
-set_local_dist(locale_specific_DIST_local CMakeLists.txt )
-set(locale_specific_DIST ${locale_specific_DIST_local} ${locale_specific_us_DIST} PARENT_SCOPE)
\ No newline at end of file
diff --git a/gnucash/report/locale-specific/us/CMakeLists.txt b/gnucash/report/locale-specific/us/CMakeLists.txt
deleted file mode 100644
index d138c9d6d..000000000
--- a/gnucash/report/locale-specific/us/CMakeLists.txt
+++ /dev/null
@@ -1,51 +0,0 @@
-add_subdirectory(test)
-
-set(locale_reports_us_SOURCES
-  gncmod-locale-reports-us.c
-)
-
-add_library(gncmod-locale-reports-us ${locale_reports_us_SOURCES})
-
-target_link_libraries(gncmod-locale-reports-us gnc-module gncmod-app-utils gncmod-gnome-utils
-                         ${GUILE_LDFLAGS} ${GLIB2_LDFLAGS})
-
-target_compile_definitions(gncmod-locale-reports-us PRIVATE -DG_LOG_DOMAIN=\"gnc.report.locale.us\")
-
-
-if (APPLE)
-  set_target_properties (gncmod-locale-reports-us PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/gnucash")
-endif()
-
-install(TARGETS gncmod-locale-reports-us
-  LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash
-  ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash
-  RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
-# No headers to install
-
-# Scheme
-
-set(gncmod_local_reports_us_SCHEME taxtxf.scm taxtxf-de_DE.scm)
-
-set(GUILE_DEPENDS
-  gncmod-html
-  scm-core-utils
-  scm-gettext
-  scm-gnc-module
-  scm-scm
-  scm-test-core
-  scm-tax-us
-  scm-report
-  scm-gnome-utils
-  )
-
-gnc_add_scheme_targets(scm-report-locale-specific
-  "${gncmod_local_reports_us_SCHEME_1}"
-  gnucash/report
-  "${GUILE_DEPENDS}"
-  FALSE
-)
-
-set_local_dist(locale_specific_us_DIST_local CMakeLists.txt
-        ${locale_reports_us_SOURCES} ${gncmod_local_reports_us_SCHEME})
-
-set(locale_specific_us_DIST ${locale_specific_us_DIST_local} ${test_locale_specific_us_DIST} PARENT_SCOPE)
diff --git a/gnucash/report/reports/CMakeLists.txt b/gnucash/report/reports/CMakeLists.txt
index 3d540cbe0..15b692746 100644
--- a/gnucash/report/reports/CMakeLists.txt
+++ b/gnucash/report/reports/CMakeLists.txt
@@ -1,4 +1,5 @@
 
+add_subdirectory(locale-specific)
 add_subdirectory(standard/test)
 add_subdirectory(support)
 
@@ -119,7 +120,12 @@ gnc_add_scheme_targets(scm-reports-example
   TRUE
 )
 
-add_custom_target(scm-reports ALL DEPENDS scm-reports-standard scm-reports-example scm-reports-common scm-rpt-reports)
+add_custom_target(scm-reports ALL DEPENDS
+    scm-reports-standard
+    scm-reports-example
+    scm-reports-common
+    scm-rpt-reports
+    scm-reports-locale-specific)
 
 set_local_dist(reports_DIST_local CMakeLists.txt ${reports_SCHEME} ${reports_common_SCHEME} ${reports_standard_SCHEME} ${reports_example_SCHEME})
-set(reports_DIST ${reports_DIST_local} ${reports_support_DIST} ${test_reports_standard_DIST} PARENT_SCOPE)
+set(reports_DIST ${reports_DIST_local} ${reports_locale_specific_DIST} ${reports_support_DIST} ${test_reports_standard_DIST} PARENT_SCOPE)
diff --git a/gnucash/report/reports/locale-specific/CMakeLists.txt b/gnucash/report/reports/locale-specific/CMakeLists.txt
new file mode 100644
index 000000000..5d53edecf
--- /dev/null
+++ b/gnucash/report/reports/locale-specific/CMakeLists.txt
@@ -0,0 +1,53 @@
+add_subdirectory(test)
+
+set(locale_specific_SOURCES
+  gncmod-locale-specific.c
+)
+
+add_library(gncmod-locale-specific ${locale_specific_SOURCES})
+
+target_link_libraries(gncmod-locale-specific gnc-module gncmod-app-utils gncmod-gnome-utils
+                         ${GUILE_LDFLAGS} ${GLIB2_LDFLAGS})
+
+target_compile_definitions(gncmod-locale-specific PRIVATE -DG_LOG_DOMAIN=\"gnc.report.locale\")
+
+
+if (APPLE)
+  set_target_properties (gncmod-locale-specific PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/gnucash")
+endif()
+
+install(TARGETS gncmod-locale-specific
+  LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash
+  ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash
+  RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+# No headers to install
+
+# Scheme
+
+set(gncmod_locale_reports_SCHEME taxtxf.scm taxtxf-de_DE.scm)
+
+set(GUILE_DEPENDS
+  gncmod-html
+  scm-core-utils
+  scm-gettext
+  scm-gnc-module
+  scm-scm
+  scm-test-core
+  scm-tax-us
+  scm-report
+  scm-gnome-utils
+  )
+
+gnc_add_scheme_targets(scm-reports-locale-specific-1
+  "${gncmod_locale_reports_SCHEME}"
+  gnucash/report/reports/locale-specific
+  "${GUILE_DEPENDS}"
+  FALSE
+)
+
+add_custom_target(scm-reports-locale-specific ALL DEPENDS scm-reports-locale-specific-1)
+
+set_local_dist(reports_locale_specific_DIST_local CMakeLists.txt
+        ${locale_specific_SOURCES} ${gncmod_locale_reports_SCHEME})
+
+set(reports_locale_specific_DIST ${reports_locale_specific_DIST_local} ${test_locale_specific_DIST} PARENT_SCOPE)
diff --git a/gnucash/report/locale-specific/us/gncmod-locale-reports-us.c b/gnucash/report/reports/locale-specific/gncmod-locale-specific.c
similarity index 80%
rename from gnucash/report/locale-specific/us/gncmod-locale-reports-us.c
rename to gnucash/report/reports/locale-specific/gncmod-locale-specific.c
index 077736a3f..c7bea0562 100644
--- a/gnucash/report/locale-specific/us/gncmod-locale-reports-us.c
+++ b/gnucash/report/reports/locale-specific/gncmod-locale-specific.c
@@ -1,6 +1,6 @@
 /*********************************************************************
- * gncmod-locale-reports-us.c
- * module definition/initialization for the US reports
+ * gncmod-locale-reports.c
+ * module definition/initialization for the locale specific reports
  *
  * Copyright (c) 2001 Linux Developers Group, Inc.
  *********************************************************************/
@@ -34,35 +34,35 @@
 #include "gnc-module.h"
 #include "gnc-module-api.h"
 
-GNC_MODULE_API_DECL(libgncmod_locale_reports_us)
+GNC_MODULE_API_DECL(libgncmod_locale_specific)
 
 /* version of the gnc module system interface we require */
-int libgncmod_locale_reports_us_gnc_module_system_interface = 0;
+int libgncmod_locale_specific_gnc_module_system_interface = 0;
 
 /* module versioning uses libtool semantics. */
-int libgncmod_locale_reports_us_gnc_module_current  = 0;
-int libgncmod_locale_reports_us_gnc_module_revision = 0;
-int libgncmod_locale_reports_us_gnc_module_age      = 0;
+int libgncmod_locale_specific_gnc_module_current  = 0;
+int libgncmod_locale_specific_gnc_module_revision = 0;
+int libgncmod_locale_specific_gnc_module_age      = 0;
 
 
 char *
-libgncmod_locale_reports_us_gnc_module_path(void)
+libgncmod_locale_specific_gnc_module_path(void)
 {
     /* const char *thislocale = setlocale(LC_ALL, NULL);
     if (strncmp(thislocale, "de_DE", 5) == 0)
       return g_strdup("gnucash/report/locale-specific/de_DE");
       else */
-    return g_strdup("gnucash/report/locale-specific/us");
+    return g_strdup("gnucash/report/locale-specific");
 }
 
 char *
-libgncmod_locale_reports_us_gnc_module_description(void)
+libgncmod_locale_specific_gnc_module_description(void)
 {
     return g_strdup("US income tax reports and related material");
 }
 
 int
-libgncmod_locale_reports_us_gnc_module_init(int refcount)
+libgncmod_locale_specific_gnc_module_init(int refcount)
 {
     const gchar *tax_module, *report_taxtxf;
     /* load the tax info */
@@ -80,12 +80,12 @@ libgncmod_locale_reports_us_gnc_module_init(int refcount)
     if (is_de_DE)
     {
         tax_module = "gnucash/tax/de_DE";
-        report_taxtxf = "(use-modules (gnucash report taxtxf-de_DE))";
+        report_taxtxf = "(use-modules (gnucash report reports locale-specific taxtxf-de_DE))";
     }
     else
     {
         tax_module = "gnucash/tax/us";
-        report_taxtxf = "(use-modules (gnucash report taxtxf))";
+        report_taxtxf = "(use-modules (gnucash report reports locale-specific taxtxf))";
     }
 
     /* The gchar* cast is only because the function declaration expects
@@ -113,7 +113,7 @@ libgncmod_locale_reports_us_gnc_module_init(int refcount)
 }
 
 int
-libgncmod_locale_reports_us_gnc_module_end(int refcount)
+libgncmod_locale_specific_gnc_module_end(int refcount)
 {
     return TRUE;
 }
diff --git a/gnucash/report/locale-specific/us/taxtxf-de_DE.scm b/gnucash/report/reports/locale-specific/taxtxf-de_DE.scm
similarity index 99%
rename from gnucash/report/locale-specific/us/taxtxf-de_DE.scm
rename to gnucash/report/reports/locale-specific/taxtxf-de_DE.scm
index 7b5759fe5..4f28a2529 100644
--- a/gnucash/report/locale-specific/us/taxtxf-de_DE.scm
+++ b/gnucash/report/reports/locale-specific/taxtxf-de_DE.scm
@@ -66,7 +66,7 @@
 
 ;; depends must be outside module scope -- and should eventually go away.
 
-(define-module (gnucash report taxtxf-de_DE))
+(define-module (gnucash report reports locale-specific taxtxf-de_DE))
 (use-modules (gnucash utilities)) 
 (use-modules (srfi srfi-1))
 (use-modules (gnucash core-utils)) ; for gnc:version
diff --git a/gnucash/report/locale-specific/us/taxtxf.scm b/gnucash/report/reports/locale-specific/taxtxf.scm
similarity index 99%
rename from gnucash/report/locale-specific/us/taxtxf.scm
rename to gnucash/report/reports/locale-specific/taxtxf.scm
index d81998d8a..2b7904ce5 100644
--- a/gnucash/report/locale-specific/us/taxtxf.scm
+++ b/gnucash/report/reports/locale-specific/taxtxf.scm
@@ -98,7 +98,7 @@
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 
-(define-module (gnucash report taxtxf))
+(define-module (gnucash report reports locale-specific taxtxf))
 (use-modules (gnucash utilities)) 
 (use-modules (srfi srfi-1))
 (use-modules (gnucash gnc-module))
diff --git a/gnucash/report/locale-specific/us/test/CMakeLists.txt b/gnucash/report/reports/locale-specific/test/CMakeLists.txt
similarity index 81%
rename from gnucash/report/locale-specific/us/test/CMakeLists.txt
rename to gnucash/report/reports/locale-specific/test/CMakeLists.txt
index 34951dad6..0b98812e3 100644
--- a/gnucash/report/locale-specific/us/test/CMakeLists.txt
+++ b/gnucash/report/reports/locale-specific/test/CMakeLists.txt
@@ -20,4 +20,4 @@ gnc_add_scheme_test_targets(test-load-report-locale-specific-module
   )
 gnc_add_scheme_tests(test-load-report-locale-specific-module.scm)
 
-set_dist_list(test_locale_specific_us_DIST CMakeLists.txt test-link-module.c test-load-report-locale-specific-module.scm)
+set_dist_list(test_locale_specific_DIST CMakeLists.txt test-link-module.c test-load-report-locale-specific-module.scm)
diff --git a/gnucash/report/locale-specific/us/test/test-link-module.c b/gnucash/report/reports/locale-specific/test/test-link-module.c
similarity index 100%
rename from gnucash/report/locale-specific/us/test/test-link-module.c
rename to gnucash/report/reports/locale-specific/test/test-link-module.c
diff --git a/gnucash/report/locale-specific/us/test/test-load-report-locale-specific-module.scm b/gnucash/report/reports/locale-specific/test/test-load-report-locale-specific-module.scm
similarity index 100%
rename from gnucash/report/locale-specific/us/test/test-load-report-locale-specific-module.scm
rename to gnucash/report/reports/locale-specific/test/test-load-report-locale-specific-module.scm
diff --git a/po/POTFILES.in b/po/POTFILES.in
index ac693bb89..3e2ee7c02 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -438,9 +438,6 @@ gnucash/report/html-style-sheet.scm
 gnucash/report/html-table.scm
 gnucash/report/html-text.scm
 gnucash/report/html-utilities.scm
-gnucash/report/locale-specific/us/gncmod-locale-reports-us.c
-gnucash/report/locale-specific/us/taxtxf-de_DE.scm
-gnucash/report/locale-specific/us/taxtxf.scm
 gnucash/report/options-utilities.scm
 gnucash/report/report-core.scm
 gnucash/report/report-register-hooks.scm
@@ -450,6 +447,9 @@ gnucash/report/reports/example/daily-reports.scm
 gnucash/report/reports/example/hello-world.scm
 gnucash/report/reports/example/sample-graphs.scm
 gnucash/report/reports/example/welcome-to-gnucash.scm
+gnucash/report/reports/locale-specific/gncmod-locale-specific.c
+gnucash/report/reports/locale-specific/taxtxf-de_DE.scm
+gnucash/report/reports/locale-specific/taxtxf.scm
 gnucash/report/reports/reports.scm
 gnucash/report/reports/standard/account-piecharts.scm
 gnucash/report/reports/standard/account-summary.scm

commit 0d426fcfe73fc7c5f23394138252a480019d8ae9
Author: Geert Janssens <geert at kobaltwit.be>
Date:   Wed Jun 12 19:11:06 2019 +0200

    RptCleanup - remove obsolete locale-specific scm modules and re-enable the locale-specific load test

diff --git a/gnucash/report/locale-specific/us/CMakeLists.txt b/gnucash/report/locale-specific/us/CMakeLists.txt
index a132af438..d138c9d6d 100644
--- a/gnucash/report/locale-specific/us/CMakeLists.txt
+++ b/gnucash/report/locale-specific/us/CMakeLists.txt
@@ -24,11 +24,7 @@ install(TARGETS gncmod-locale-reports-us
 
 # Scheme
 
-set(gncmod_local_reports_us_SCHEME_1 taxtxf.scm taxtxf-de_DE.scm)
-
-
-set(gncmod_local_reports_us_SCHEME_2 us.scm de_DE.scm)
-
+set(gncmod_local_reports_us_SCHEME taxtxf.scm taxtxf-de_DE.scm)
 
 set(GUILE_DEPENDS
   gncmod-html
@@ -42,21 +38,14 @@ set(GUILE_DEPENDS
   scm-gnome-utils
   )
 
-gnc_add_scheme_targets(scm-report-locale-specific-1
+gnc_add_scheme_targets(scm-report-locale-specific
   "${gncmod_local_reports_us_SCHEME_1}"
   gnucash/report
   "${GUILE_DEPENDS}"
   FALSE
 )
 
-gnc_add_scheme_targets(scm-report-locale-specific-2
-  "${gncmod_local_reports_us_SCHEME_2}"
-  gnucash/report/locale-specific
-  "scm-report-locale-specific-1;${GUILE_DEPENDS}"
-  FALSE
-)
-
 set_local_dist(locale_specific_us_DIST_local CMakeLists.txt
-        ${locale_reports_us_SOURCES} ${gncmod_local_reports_us_SCHEME_1} ${gncmod_local_reports_us_SCHEME_2})
+        ${locale_reports_us_SOURCES} ${gncmod_local_reports_us_SCHEME})
 
 set(locale_specific_us_DIST ${locale_specific_us_DIST_local} ${test_locale_specific_us_DIST} PARENT_SCOPE)
diff --git a/gnucash/report/locale-specific/us/de_DE.scm b/gnucash/report/locale-specific/us/de_DE.scm
deleted file mode 100644
index 0b943e3f8..000000000
--- a/gnucash/report/locale-specific/us/de_DE.scm
+++ /dev/null
@@ -1,22 +0,0 @@
-; This is unused and therefore no longer installed and/or loaded
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;; This program is free software; you can redistribute it and/or
-;; modify it under the terms of the GNU General Public License as
-;; published by the Free Software Foundation; either version 2 of
-;; the License, or (at your option) any later version.
-;;
-;; This program 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 General Public License for more details.
-;;
-;; You should have received a copy of the GNU General Public License
-;; along with this program; if not, contact:
-;;
-;; Free Software Foundation           Voice:  +1-617-542-5942
-;; 51 Franklin Street, Fifth Floor    Fax:    +1-617-542-2652
-;; Boston, MA  02110-1301,  USA       gnu at gnu.org
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
-(define-module (gnucash report locale-specific de_DE))
-(use-modules (gnucash report taxtxf-de_DE))  
diff --git a/gnucash/report/locale-specific/us/gncmod-locale-reports-us.c b/gnucash/report/locale-specific/us/gncmod-locale-reports-us.c
index c9cb7f97f..077736a3f 100644
--- a/gnucash/report/locale-specific/us/gncmod-locale-reports-us.c
+++ b/gnucash/report/locale-specific/us/gncmod-locale-reports-us.c
@@ -64,7 +64,7 @@ libgncmod_locale_reports_us_gnc_module_description(void)
 int
 libgncmod_locale_reports_us_gnc_module_init(int refcount)
 {
-    const gchar *tax_module, *report_taxtxf, *report_locale;
+    const gchar *tax_module, *report_taxtxf;
     /* load the tax info */
     /* This is a very simple hack that loads the (new, special) German
        tax definition file in a German locale, or (default) loads the
@@ -81,13 +81,11 @@ libgncmod_locale_reports_us_gnc_module_init(int refcount)
     {
         tax_module = "gnucash/tax/de_DE";
         report_taxtxf = "(use-modules (gnucash report taxtxf-de_DE))";
-        report_locale = "(use-modules (gnucash report locale-specific de_DE))";
     }
     else
     {
         tax_module = "gnucash/tax/us";
         report_taxtxf = "(use-modules (gnucash report taxtxf))";
-        report_locale = "(use-modules (gnucash report locale-specific us))";
     }
 
     /* The gchar* cast is only because the function declaration expects
@@ -111,13 +109,6 @@ libgncmod_locale_reports_us_gnc_module_init(int refcount)
         return FALSE;
     }
 
-    /* Load the module scheme code */
-    if (scm_c_eval_string(report_locale)
-            == SCM_BOOL_F)
-    {
-        return FALSE;
-    }
-
     return TRUE;
 }
 
diff --git a/gnucash/report/locale-specific/us/test/CMakeLists.txt b/gnucash/report/locale-specific/us/test/CMakeLists.txt
index 70ec0e0e0..34951dad6 100644
--- a/gnucash/report/locale-specific/us/test/CMakeLists.txt
+++ b/gnucash/report/locale-specific/us/test/CMakeLists.txt
@@ -5,21 +5,19 @@ gnc_add_test(test-link-module-report-locale-specific-us test-link-module.c
   LOCALE_SPECIFIC_US_TEST_INCLUDE_DIRS LOCALE_SPECIFIC_US_TEST_LIBS
 )
 
-# FIXME why is this not run/running?
-# Answer: Bitrot. The test needs to be rewritten.
-#set(GUILE_DEPENDS
-#  scm-app-utils
-#  gnc-core-utils
-#  gnc-module
-#  gncmod-engine
-#)
-#
-#gnc_add_scheme_test_targets(test-load-report-locale-specific-module
-#  "test-load-report-locale-specific-module.scm"
-#  "tests"
-#  "${GUILE_DEPENDS}"
-#  FALSE
-#  )
-#gnc_add_scheme_tests(test-load-report-locale-specific-us-module.scm)
+set(GUILE_DEPENDS
+  scm-app-utils
+  gnc-core-utils
+  gnc-module
+  gncmod-engine
+)
+
+gnc_add_scheme_test_targets(test-load-report-locale-specific-module
+  "test-load-report-locale-specific-module.scm"
+  "tests"
+  "${GUILE_DEPENDS}"
+  FALSE
+  )
+gnc_add_scheme_tests(test-load-report-locale-specific-module.scm)
 
 set_dist_list(test_locale_specific_us_DIST CMakeLists.txt test-link-module.c test-load-report-locale-specific-module.scm)
diff --git a/gnucash/report/locale-specific/us/test/test-load-report-locale-specific-module.scm b/gnucash/report/locale-specific/us/test/test-load-report-locale-specific-module.scm
index e1e1b0ad8..b8a65dda6 100755
--- a/gnucash/report/locale-specific/us/test/test-load-report-locale-specific-module.scm
+++ b/gnucash/report/locale-specific/us/test/test-load-report-locale-specific-module.scm
@@ -1,11 +1,11 @@
+(setenv "GNC_UNINSTALLED" "1")
 (use-modules (gnucash gnc-module))
 (gnc:module-system-init)
 
 (display "  testing US locale-specific report module load ... ")
-(gnc:module-load "gnucash/app-file" 0)
 
 (display "  (done with precursor) ... ")
-(if (gnc:module-load "gnucash/report/locale-specific/us" 0)
+(if (gnc:module-load "gnucash/tax/us" 0)
     (begin 
       (display "ok\n")
       (exit 0))
diff --git a/gnucash/report/locale-specific/us/us.scm b/gnucash/report/locale-specific/us/us.scm
deleted file mode 100644
index 2ab0b338d..000000000
--- a/gnucash/report/locale-specific/us/us.scm
+++ /dev/null
@@ -1,22 +0,0 @@
-; This is unused and therefore no longer installed and/or loaded
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;; This program is free software; you can redistribute it and/or
-;; modify it under the terms of the GNU General Public License as
-;; published by the Free Software Foundation; either version 2 of
-;; the License, or (at your option) any later version.
-;;
-;; This program 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 General Public License for more details.
-;;
-;; You should have received a copy of the GNU General Public License
-;; along with this program; if not, contact:
-;;
-;; Free Software Foundation           Voice:  +1-617-542-5942
-;; 51 Franklin Street, Fifth Floor    Fax:    +1-617-542-2652
-;; Boston, MA  02110-1301,  USA       gnu at gnu.org
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
-(define-module (gnucash report locale-specific us))
-(use-modules (gnucash report taxtxf))  
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 01e0d6b97..ac693bb89 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -438,11 +438,9 @@ gnucash/report/html-style-sheet.scm
 gnucash/report/html-table.scm
 gnucash/report/html-text.scm
 gnucash/report/html-utilities.scm
-gnucash/report/locale-specific/us/de_DE.scm
 gnucash/report/locale-specific/us/gncmod-locale-reports-us.c
 gnucash/report/locale-specific/us/taxtxf-de_DE.scm
 gnucash/report/locale-specific/us/taxtxf.scm
-gnucash/report/locale-specific/us/us.scm
 gnucash/report/options-utilities.scm
 gnucash/report/report-core.scm
 gnucash/report/report-register-hooks.scm

commit 32a83678c9be470e730b6ada66864495272fb1ae
Author: Geert Janssens <geert at kobaltwit.be>
Date:   Tue Jun 11 17:47:46 2019 +0200

    RptCleanup - Install our guile api as a guile site module
    
    This is similar to how our python code is installed as a python site module

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 0b4645867..b712fa492 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -355,6 +355,9 @@ if (GNC_TEXT_PORTS_RESULT EQUAL 0)
   set (HAVE_TEXT_PORTS TRUE)
 endif ()
 
+# Determine where to install our guile modules libraries.
+find_guile_dirs()
+
 # ############################################################
 if (WITH_AQBANKING)
   pkg_check_modules (GWENHYWFAR REQUIRED gwenhywfar>=4.9.99)
@@ -770,9 +773,6 @@ add_definitions (-DHAVE_CONFIG_H)
 set (CONFIG_H ${CMAKE_CURRENT_BINARY_DIR}/common/config.h)
 configure_file (${CMAKE_CURRENT_SOURCE_DIR}/common/config.h.cmake.in ${CONFIG_H})
 
-set(SCHEME_INSTALLED_SOURCE_DIR ${CMAKE_INSTALL_DATADIR}/gnucash/scm)
-set(SCHEME_INSTALLED_CACHE_DIR ${PKGLIBDIR}/scm/ccache/${GUILE_EFFECTIVE_VERSION})
-
 # The subdirectories
 add_subdirectory (borrowed)
 add_subdirectory (data)
diff --git a/common/cmake_modules/GncAddSchemeTargets.cmake b/common/cmake_modules/GncAddSchemeTargets.cmake
index 1b72aadae..5d61086d4 100644
--- a/common/cmake_modules/GncAddSchemeTargets.cmake
+++ b/common/cmake_modules/GncAddSchemeTargets.cmake
@@ -13,7 +13,7 @@
 # 51 Franklin Street, Fifth Floor    Fax:    +1-617-542-2652
 # Boston, MA  02110-1301,  USA       gnu at gnu.org
 
-#Guile and ltdl require MSYS paths on MinGW-w64; this function transforms them.
+# Guile and ltdl require MSYS paths on MinGW-w64; this function transforms them.
 function(make_unix_path PATH)
     string(REGEX REPLACE "^([A-Za-z]):" "/\\1" newpath ${${PATH}})
     string(REGEX REPLACE "\\\\" "/" newpath ${newpath})
@@ -26,6 +26,82 @@ function(make_unix_path_list PATH)
     set(${PATH} ${newpath} PARENT_SCOPE)
 endfunction()
 
+# This function will set two or four environment variables to a directory in the parent PARENT_SCOPE
+# * _DIRCLASS (eg "prefix", "sitedir" is used to construct the variable name(s) and in error messages
+# * _DIRCMD is the guile command to run to get the path for the given _DIRCLASS (eg "(display (%site-dir))")
+# * _PREFIX: if set will be used to calculate paths relative to this prefix and
+#   set two more environment variable with this relative path.
+# When run successfully this function will set following variables in the parent scope:
+# * GUILE_${CMDCLASS} and GUILE_UNIX_${CMDCLASS} - the latter is the former transformed
+#   into an msys compatible format (c:\some\directory => /c/some/directory)
+# * If _PREFIX was set: GUILE_${CMDCLASS} and GUILE_REL_UNIX_${CMDCLASS}
+#   which are the former two variables with _PREFIX removed
+#   (_PREFIX=/usr, GUILE_${CMDCLASS} = /usr/share/something
+#    => GUILE_REL_${CMDCLASS} = share/something
+function(find_one_guile_dir _DIRCLASS _DIRCMD _PREFIX)
+
+    string(TOUPPER ${_DIRCLASS} CLASS_UPPER)
+    string(TOLOWER ${_DIRCLASS} CLASS_LOWER)
+    execute_process(
+        COMMAND ${GUILE_EXECUTABLE} -c ${_DIRCMD}
+        RESULT_VARIABLE CMD_RESULT
+        OUTPUT_VARIABLE CMD_OUTPUT
+        ERROR_VARIABLE CMD_ERROR
+        OUTPUT_STRIP_TRAILING_WHITESPACE
+        ERROR_STRIP_TRAILING_WHITESPACE
+    )
+    if (CMD_RESULT)
+        message(SEND_ERROR "Could not determine Guile ${CLASS_LOWER}:\n${CMD_ERROR}")
+    endif()
+
+    set(GUILE_${CLASS_UPPER} ${CMD_OUTPUT} PARENT_SCOPE)
+    set(CMD_UNIX_OUTPUT  ${CMD_OUTPUT})
+    make_unix_path(CMD_UNIX_OUTPUT)
+    set(GUILE_UNIX_${CLASS_UPPER} ${CMD_UNIX_OUTPUT} PARENT_SCOPE)
+
+    if (_PREFIX)
+        string(REGEX REPLACE "^${_PREFIX}[\\/]*" "" CMD_REL_OUTPUT ${CMD_OUTPUT})
+        set(GUILE_REL_${CLASS_UPPER} ${CMD_REL_OUTPUT} PARENT_SCOPE)
+        set(CMD_REL_UNIX_OUTPUT  ${CMD_REL_OUTPUT})
+        make_unix_path(CMD_REL_UNIX_OUTPUT)
+        set(GUILE_REL_UNIX_${CLASS_UPPER} ${CMD_REL_UNIX_OUTPUT} PARENT_SCOPE)
+    endif()
+
+endfunction(find_one_guile_dir)
+
+# Query the guile executable for path information. We're interested in guile's
+# datadir, libdir, sitedir, ccachedir and siteccachedir
+macro(find_guile_dirs)
+    # Get GUILE_PREFIX and GUILE_UNIX_PREFIX
+    find_one_guile_dir("prefix" "(display (assoc-ref %guile-build-info 'prefix))" "")
+    # Get GUILE_DATADIR, GUILE_UNIX_DATADIR, GUILE_REL_DATADIR, GUILE_REL_UNIX_DATADIR
+    find_one_guile_dir("datadir" "(display (%package-data-dir))" ${GUILE_PREFIX})
+    # Get GUILE_LIBDIR, GUILE_UNIX_LIBDIR, GUILE_REL_LIBDIR, GUILE_REL_UNIX_LIBDIR
+    find_one_guile_dir("libdir" "(display (%library-dir))" ${GUILE_PREFIX})
+    # Get GUILE_CCACHEDIR, GUILE_UNIX_CCACHEDIR, GUILE_REL_CCACHEDIR, GUILE_REL_UNIX_CCACHEDIR
+    find_one_guile_dir("ccachedir" "(display (assoc-ref %guile-build-info 'ccachedir))" ${GUILE_PREFIX})
+    # Get GUILE_SITEDIR, GUILE_UNIX_SITEDIR, GUILE_REL_SITEDIR, GUILE_REL_UNIX_SITEDIR
+    find_one_guile_dir("sitedir" "(display (%site-dir))" ${GUILE_PREFIX})
+    # Get GUILE_SITECCACHEDIR, GUILE_UNIX_SITECCACHEDIR, GUILE_REL_SITECCACHEDIR, GUILE_REL_UNIX_SITECCACHEDIR
+    find_one_guile_dir("siteccachedir" "(display (%site-ccache-dir))" ${GUILE_PREFIX})
+    string(REGEX REPLACE "[/\\]*${GUILE_EFFECTIVE_VERSION}$" "" GUILE_REL_TOP_SITEDIR ${GUILE_REL_SITEDIR})
+    string(REGEX REPLACE "[/]*${GUILE_EFFECTIVE_VERSION}$" "" GUILE_REL_UNIX_TOP_SITEDIR ${GUILE_REL_UNIX_SITEDIR})
+
+    # Generate replacement strings for use in environment file. The paths used are
+    # the paths found in %load-path and %load-compiled-path by default but
+    # rebased on {GNC_HOME} (which is the runtime resolved variable to where gnucash
+    # gets installed).
+    set (GNC_GUILE_LOAD_PATH
+            "{GNC_HOME}/${GUILE_REL_UNIX_LIBDIR}"
+            "{GNC_HOME}/${GUILE_REL_UNIX_SITEDIR}"
+            "{GNC_HOME}/${GUILE_REL_UNIX_TOP_SITEDIR}"
+            "{GNC_HOME}/${GUILE_REL_UNIX_DATADIR}")
+
+    set (GNC_GUILE_LOAD_COMPILED_PATH
+            "{GNC_HOME}/${GUILE_REL_UNIX_CCACHEDIR}"
+            "{GNC_HOME}/${GUILE_REL_UNIX_SITECCACHEDIR}")
+endmacro(find_guile_dirs)
+
 function(make_scheme_targets _TARGET _SOURCE_FILES _OUTPUT_DIR _GUILE_DEPENDS
                                 MAKE_LINKS)
   set(__DEBUG FALSE)
@@ -54,9 +130,9 @@ function(make_scheme_targets _TARGET _SOURCE_FILES _OUTPUT_DIR _GUILE_DEPENDS
     make_unix_path(CMAKE_SOURCE_DIR)
   endif()
 
-  # If links are requested, we simple link (or copy, for Windows) each source file to the dest directory
+  # If links are requested, we simply link (or copy, for Windows) each source file to the dest directory
   if(MAKE_LINKS)
-    set(_LINK_DIR ${DATADIR_BUILD}/gnucash/scm/${_OUTPUT_DIR})
+    set(_LINK_DIR ${CMAKE_BINARY_DIR}/${GUILE_REL_UNIX_SITEDIR}/${_OUTPUT_DIR})
     file(MAKE_DIRECTORY ${_LINK_DIR})
     set(_SCHEME_LINKS "")
     foreach(scheme_file ${_SOURCE_FILES})
@@ -88,9 +164,9 @@ function(make_scheme_targets _TARGET _SOURCE_FILES _OUTPUT_DIR _GUILE_DEPENDS
     list(APPEND _GUILE_LOAD_PATH ${guile_load_path})
     list(APPEND _GUILE_LOAD_COMPILED_PATH ${guile_load_compiled_path})
   endif()
-  set(_GUILE_CACHE_DIR ${LIBDIR_BUILD}/gnucash/scm/ccache/${GUILE_EFFECTIVE_VERSION})
-  list(APPEND _GUILE_LOAD_PATH "${build_datadir}/gnucash/scm")
-  list(APPEND _GUILE_LOAD_COMPILED_PATH ${build_libdir}/gnucash/scm/ccache/${GUILE_EFFECTIVE_VERSION})
+  set(_GUILE_CACHE_DIR ${CMAKE_BINARY_DIR}/${GUILE_REL_UNIX_SITECCACHEDIR})
+  list(APPEND _GUILE_LOAD_PATH "${CMAKE_BINARY_DIR}/${GUILE_REL_UNIX_SITEDIR}")
+  list(APPEND _GUILE_LOAD_COMPILED_PATH ${_GUILE_CACHE_DIR})
 
   set(_TARGET_FILES "")
 
@@ -167,8 +243,8 @@ function(gnc_add_scheme_targets _TARGET _SOURCE_FILES _OUTPUT_DIR _GUILE_DEPENDS
     MAKE_LINKS)
   make_scheme_targets("${_TARGET}" "${_SOURCE_FILES}" "${_OUTPUT_DIR}"
                       "${_GUILE_DEPENDS}" "${MAKE_LINKS}")
-  install(FILES ${_TARGET_FILES} DESTINATION ${SCHEME_INSTALLED_CACHE_DIR}/${_OUTPUT_DIR})
-  install(FILES ${_SOURCE_FILES} DESTINATION ${SCHEME_INSTALLED_SOURCE_DIR}/${_OUTPUT_DIR})
+  install(FILES ${_TARGET_FILES} DESTINATION ${CMAKE_INSTALL_PREFIX}/${GUILE_REL_SITECCACHEDIR}/${_OUTPUT_DIR})
+  install(FILES ${_SOURCE_FILES} DESTINATION ${CMAKE_INSTALL_PREFIX}/${GUILE_REL_SITEDIR}/${_OUTPUT_DIR})
 endfunction(gnc_add_scheme_targets)
 
 function(gnc_add_scheme_test_targets _TARGET _SOURCE_FILES _OUTPUT_DIR _GUILE_DEPENDS
diff --git a/common/cmake_modules/GncAddTest.cmake b/common/cmake_modules/GncAddTest.cmake
index b673f72f0..17857c4fe 100644
--- a/common/cmake_modules/GncAddTest.cmake
+++ b/common/cmake_modules/GncAddTest.cmake
@@ -24,7 +24,7 @@ function(get_guile_env)
       set(fpath "${fpath}${dir}:")
     endforeach(dir)
     list(APPEND env "PATH=${fpath}")
-    set(compiled_path "${LIBDIR_BUILD}/gnucash/scm/ccache/${GUILE_EFFECTIVE_VERSION}")
+    set(compiled_path "${CMAKE_BINARY_DIR}/${GUILE_REL_SITECCACHEDIR}")
     string(REGEX REPLACE "^([A-Za-z]):" "/\\1" compiled_path ${compiled_path})
     list(APPEND env GUILE_LOAD_COMPILED_PATH=${compiled_path})
   endif(MINGW64)
@@ -32,7 +32,7 @@ function(get_guile_env)
   list(APPEND env "GUILE=${GUILE_EXECUTABLE}")
 
   if (NOT WIN32)
-    list(APPEND env "GUILE_LOAD_COMPILED_PATH=${LIBDIR_BUILD}/gnucash/scm/ccache/${GUILE_EFFECTIVE_VERSION}:${LIBDIR_BUILD}/gnucash/scm/ccache/${GUILE_EFFECTIVE_VERSION}/tests")
+      list(APPEND env "GUILE_LOAD_COMPILED_PATH=${CMAKE_BINARY_DIR}/${GUILE_REL_SITECCACHEDIR}:${CMAKE_BINARY_DIR}/${GUILE_REL_SITECCACHEDIR}/tests")
   endif()
   set(guile_load_paths "")
   list(APPEND guile_load_paths ${CMAKE_CURRENT_SOURCE_DIR}/mod-foo)
diff --git a/gnucash/environment.in b/gnucash/environment.in
index e27569637..e81a01325 100644
--- a/gnucash/environment.in
+++ b/gnucash/environment.in
@@ -57,11 +57,11 @@ GNC_MODULE_PATH={GNC_LIB};{GNC_MODULE_PATH}
 # modules.
 # GUILE_LIBS=
 # GUILE_COMPILED_LIBS=
-GUILE_LOAD_PATH={GNC_DATA}/scm;{GNC_HOME}/share/guile//@GUILE_EFFECTIVE_VERSION@;{GUILE_LIBS};{GUILE_LOAD_PATH}
+GUILE_LOAD_PATH=@GNC_GUILE_LOAD_PATH@;{GUILE_LIBS};{GUILE_LOAD_PATH}
 
 # On Windows {GNC_LIB} points to {GNC_HOME}/bin because that's where the DLLs
 # are. It's not where the compiled scheme files are so we use {SYS_LIB} here.
-GUILE_LOAD_COMPILED_PATH={SYS_LIB}/guile/@GUILE_EFFECTIVE_VERSION@/ccache;{SYS_LIB}/gnucash/scm/ccache/@GUILE_EFFECTIVE_VERSION@;{GUILE_COMPILED_LIBS};{GUILE_LOAD_COMPILED_PATH}
+GUILE_LOAD_COMPILED_PATH=@GNC_GUILE_LOAD_COMPILED_PATH@;{GUILE_COMPILED_LIBS};{GUILE_LOAD_COMPILED_PATH}
 
 # Tell Guile where to find GnuCash specific shared libraries
 GNC_LIBRARY_PATH={SYS_LIB};{GNC_LIB}
diff --git a/gnucash/report/reports/support/CMakeLists.txt b/gnucash/report/reports/support/CMakeLists.txt
index 23195aebe..1a9582de0 100644
--- a/gnucash/report/reports/support/CMakeLists.txt
+++ b/gnucash/report/reports/support/CMakeLists.txt
@@ -7,7 +7,7 @@ set(support_DATA
   balsheet-eg.eguile.scm
 )
 
-install(FILES ${support_DATA} DESTINATION ${SCHEME_INSTALLED_SOURCE_DIR}/gnucash/report)
+install(FILES ${support_DATA} DESTINATION ${CMAKE_INSTALL_PREFIX}/${GUILE_REL_SITEDIR}/gnucash/report)
 
 set(support_EXTRA_DIST
   README
diff --git a/libgnucash/core-utils/gnc-path.c b/libgnucash/core-utils/gnc-path.c
index 2d8a306aa..f02d66141 100644
--- a/libgnucash/core-utils/gnc-path.c
+++ b/libgnucash/core-utils/gnc-path.c
@@ -171,24 +171,16 @@ gchar *gnc_path_get_accountsdir()
 }
 
 /** Returns the file path to the directory containing all guile scripts, usually
- * "$prefix/share/gnucash/scm".
+ * "$prefix/guile/site/2.2".
+ * This path is determined by querying guile for its sitedir and then
+ * rebasing this to be relative to our own installation prefix.
  *
  * @returns A newly allocated string. */
 gchar *gnc_path_get_scmdir()
 {
-    /* Careful: if the cmake variable SCHEME_INSTALLED_SOURCE_DIR gets changed
-     * in toplevel CMakeLists.txt, this path should probably change as well.
-     * Currently this code assumes SCHEME_INSTALLED_SOURCE_DIR is set to
-     * pkgdatadir/scm
-     * We can't use GNC_SCM_INSTALL_DIR directly at build time to
-     * get this information, because on Windows and OS X
-     * the final path may get installed in a different location
-     * than assumed during build, invalidating the build path at
-     * runtime.
-     */
-    gchar *pkgdatadir = gnc_path_get_pkgdatadir ();
-    gchar *result = g_build_filename (pkgdatadir, "scm", (char*)NULL);
-    g_free (pkgdatadir);
+    gchar *prefix = gnc_path_get_prefix ();
+    gchar *result = g_build_filename (prefix, GUILE_REL_SITEDIR, (char*)NULL);
+    g_free (prefix);
 
     return result;
 }
diff --git a/libgnucash/core-utils/gncla-dir.h.in b/libgnucash/core-utils/gncla-dir.h.in
index d15dce705..8ea68429b 100644
--- a/libgnucash/core-utils/gncla-dir.h.in
+++ b/libgnucash/core-utils/gncla-dir.h.in
@@ -31,3 +31,5 @@
 #define LIBDIR "@libdir@"
 
 #define LOCALEDIR "@localedir@"
+
+#define GUILE_REL_SITEDIR "@GUILE_REL_SITEDIR@"

commit 8d242528601c5322d635fe2df9d9f410bbfd69dc
Author: Geert Janssens <geert at kobaltwit.be>
Date:   Sat Jun 8 18:45:02 2019 +0200

    RptCleanup - Internalize guile-json module
    
    This is in preparation of the final guile restructuring step:
    install gnucash scm files directly in guile's default site module directory.
    Internalizing json is done to prevent an install clash with a potentially
    system installed guile-json module.

diff --git a/borrowed/guile-json/CMakeLists.txt b/borrowed/guile-json/CMakeLists.txt
index 60c302627..e8bd8a692 100644
--- a/borrowed/guile-json/CMakeLists.txt
+++ b/borrowed/guile-json/CMakeLists.txt
@@ -1,9 +1,20 @@
-add_subdirectory(json)
+set (scm-guile-json-details
+  json/builder.scm
+  json/parser.scm
+  json/syntax.scm
+)
+
+gnc_add_scheme_targets (guile-json-details
+  "${scm-guile-json-details}"
+  gnucash/json
+  ""
+  TRUE
+)
 
 gnc_add_scheme_targets (guile-json
   json.scm
-  ""
-  ""
+  "gnucash"
+  "guile-json-details"
   FALSE
 )
 
@@ -12,8 +23,9 @@ set_local_dist(guile-json_DIST_LOCAL
   CMakeLists.txt
   COPYING
   json.scm
+  ${scm-guile-json-details}
   NEWS
   README.org
 )
 
-set(guile-json_DIST ${guile-json_DIST_LOCAL} ${guile-json-details_DIST} PARENT_SCOPE)
+set(guile-json_DIST ${guile-json_DIST_LOCAL} PARENT_SCOPE)
diff --git a/borrowed/guile-json/json.scm b/borrowed/guile-json/json.scm
index 3ca8dc026..f47408865 100644
--- a/borrowed/guile-json/json.scm
+++ b/borrowed/guile-json/json.scm
@@ -23,9 +23,9 @@
 
 ;;; Code:
 
-(define-module (json)
-  #:use-module (json builder)
-  #:use-module (json parser))
+(define-module (gnucash json)
+  #:use-module (gnucash json builder)
+  #:use-module (gnucash json parser))
 
 (define-syntax re-export-modules
   (syntax-rules ()
@@ -35,7 +35,7 @@
                     (resolve-interface '(mod ...)))
        ...))))
 
-(re-export-modules (json builder)
-                   (json parser))
+(re-export-modules (gnucash json builder)
+                   (gnucash json parser))
 
 ;;; (json) ends here
diff --git a/borrowed/guile-json/json/CMakeLists.txt b/borrowed/guile-json/json/CMakeLists.txt
index 1b890b01a..50aa82ccc 100644
--- a/borrowed/guile-json/json/CMakeLists.txt
+++ b/borrowed/guile-json/json/CMakeLists.txt
@@ -6,9 +6,9 @@ set (scm-guile-json-details
 
 gnc_add_scheme_targets (guile-json-details
   "${scm-guile-json-details}"
-  json
+  gnucash/json
   ""
-  FALSE
+  TRUE
 )
 
 set_dist_list (guile-json-details_DIST
diff --git a/borrowed/guile-json/json/builder.scm b/borrowed/guile-json/json/builder.scm
index 4b5e43a25..80e5716ce 100644
--- a/borrowed/guile-json/json/builder.scm
+++ b/borrowed/guile-json/json/builder.scm
@@ -24,7 +24,7 @@
 
 ;;; Code:
 
-(define-module (json builder)
+(define-module (gnucash json builder)
   #:use-module (ice-9 format)
   #:use-module (srfi srfi-1)
   #:use-module (rnrs bytevectors)
diff --git a/borrowed/guile-json/json/parser.scm b/borrowed/guile-json/json/parser.scm
index eae6d482a..fb145c15d 100644
--- a/borrowed/guile-json/json/parser.scm
+++ b/borrowed/guile-json/json/parser.scm
@@ -23,7 +23,7 @@
 
 ;;; Code:
 
-(define-module (json parser)
+(define-module (gnucash json parser)
   #:use-module (ice-9 rdelim)
   #:use-module (rnrs bytevectors)
   #:use-module (srfi srfi-9)
diff --git a/borrowed/guile-json/json/syntax.scm b/borrowed/guile-json/json/syntax.scm
index 10e20997a..083e374cc 100644
--- a/borrowed/guile-json/json/syntax.scm
+++ b/borrowed/guile-json/json/syntax.scm
@@ -25,7 +25,7 @@
 
 ;;; Code:
 
-(define-module (json syntax)
+(define-module (gnucash json syntax)
   #:use-module (ice-9 deprecated)
   #:use-module (ice-9 match)
   #:export (json))
diff --git a/gnucash/report/html-chart.scm b/gnucash/report/html-chart.scm
index 35f73abb8..056db7ed5 100644
--- a/gnucash/report/html-chart.scm
+++ b/gnucash/report/html-chart.scm
@@ -24,7 +24,7 @@
 ;; Boston, MA  02110-1301,  USA       gnu at gnu.org
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
-(use-modules (json builder))            ;for building JSON options
+(use-modules (gnucash json builder))            ;for building JSON options
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;

commit 53f59f7794bde7df6169cde8b6fa49e3d871f502
Author: Geert Janssens <geert at kobaltwit.be>
Date:   Sat Jun 8 18:04:50 2019 +0200

    RptCleanup - Restructure installation of gnucash scm files
    
    These files were installed fairly ad-hoc into the share/gnucash/scm directory making
    it hard to get an idea of where each file comes from.
    The files are now structured as follows:
    - any scm file authored by gnucash should go in share/gnucash/scm/gnucash or below
    - most scm modules will be directly in that directory
    - each module that comes with support files will get a subdirectory named after the
      module's base name. For example next to engine.scm there will be directory
      named engine for all support files of the engine module
    - scm files that are not modules, but are loaded by modules go into
      <module-dir>. For example gnc-utils.scm loads gnc-menu-extensions.scm
      so that file will be installed in gnc-utils/gnc-menu-extensions.scm
    - the report system is our largest module and only part of the restructuring
      is done at this point. It will be refined further in future commits.
    
    The same restructuring is also done for the compiled files.

diff --git a/gnucash/gnome-utils/CMakeLists.txt b/gnucash/gnome-utils/CMakeLists.txt
index 4d5c6688f..086b6573c 100644
--- a/gnucash/gnome-utils/CMakeLists.txt
+++ b/gnucash/gnome-utils/CMakeLists.txt
@@ -264,9 +264,9 @@ gnc_add_scheme_targets(scm-gnome-utils-1
 
 gnc_add_scheme_targets(scm-gnome-utils-2
   gnc-menu-extensions.scm
-  ""
+  "gnucash/gnome-utils"
   "${GUILE_DEPENDS}"
-  FALSE
+  TRUE
 )
 
 add_custom_target(scm-gnome-utils ALL DEPENDS scm-gnome-utils-2 scm-gnome-utils-1)
diff --git a/gnucash/gnome-utils/gnome-utils.scm b/gnucash/gnome-utils/gnome-utils.scm
index 7d5e56edb..c49ff02af 100644
--- a/gnucash/gnome-utils/gnome-utils.scm
+++ b/gnucash/gnome-utils/gnome-utils.scm
@@ -39,7 +39,7 @@
 (export gnc:make-menu)
 (export gnc:make-separator)
 
-(load-from-path "gnc-menu-extensions")
+(load-from-path "gnucash/gnome-utils/gnc-menu-extensions")
 
 ;; this function will receive 1 boolean argument, and can be used for
 ;; any UI init/shutdown routines. For now it will set the
diff --git a/gnucash/import-export/qif-imp/CMakeLists.txt b/gnucash/import-export/qif-imp/CMakeLists.txt
index 4f36a46bd..c7e963711 100644
--- a/gnucash/import-export/qif-imp/CMakeLists.txt
+++ b/gnucash/import-export/qif-imp/CMakeLists.txt
@@ -71,23 +71,23 @@ set(GUILE_DEPENDS
 
 gnc_add_scheme_targets(scm-qif-import-0
   "${qif_import_SCHEME_0}"
-  "gnucash/import-export"
+  "gnucash"
   "${GUILE_DEPENDS}"
   FALSE
 )
 
 gnc_add_scheme_targets(scm-qif-import-2
   "${qif_import_SCHEME_2}"
-  "gnucash/import-export"
+  "gnucash"
   "${GUILE_DEPENDS}"
   FALSE
 )
 
 gnc_add_scheme_targets(scm-qif-import
   "${qif_import_SCHEME}"
-  "qif-import"
+  "gnucash/qif-import"
   "${GUILE_DEPENDS};scm-qif-import-0"
-  FALSE
+  TRUE
 )
 
 set_local_dist(qif_import_DIST_local CMakeLists.txt file-format.txt ${qif_import_SOURCES} ${qif_import_noinst_HEADERS}
diff --git a/gnucash/import-export/qif-imp/gncmod-qif-import.c b/gnucash/import-export/qif-imp/gncmod-qif-import.c
index 2b8113681..8b0b414bd 100644
--- a/gnucash/import-export/qif-imp/gncmod-qif-import.c
+++ b/gnucash/import-export/qif-imp/gncmod-qif-import.c
@@ -86,7 +86,7 @@ libgncmod_qif_import_gnc_module_init(int refcount)
         ((void (*)())gnc_file_qif_import);
     }
 
-    scm_c_eval_string("(use-modules (gnucash import-export qif-import))");
+    scm_c_eval_string("(use-modules (gnucash qif-import))");
 
     gnc_plugin_qif_import_create_plugin();
 
diff --git a/gnucash/import-export/qif-imp/qif-dialog-utils.scm b/gnucash/import-export/qif-imp/qif-dialog-utils.scm
index 78f9373da..944ada69e 100644
--- a/gnucash/import-export/qif-imp/qif-dialog-utils.scm
+++ b/gnucash/import-export/qif-imp/qif-dialog-utils.scm
@@ -24,7 +24,7 @@
 ;; Boston, MA  02110-1301,  USA       gnu at gnu.org
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
-(use-modules (gnucash import-export string))
+(use-modules (gnucash string))
 
 (define (default-stock-acct brokerage security)
   (string-append brokerage (gnc-get-account-separator-string) security))
diff --git a/gnucash/import-export/qif-imp/qif-file.scm b/gnucash/import-export/qif-imp/qif-file.scm
index f053daa2e..38a11411e 100644
--- a/gnucash/import-export/qif-imp/qif-file.scm
+++ b/gnucash/import-export/qif-imp/qif-file.scm
@@ -26,7 +26,7 @@
 
 
 (use-modules (gnucash core-utils))
-(use-modules (gnucash import-export string))
+(use-modules (gnucash string))
 (use-modules (ice-9 regex))
 (use-modules (srfi srfi-13))
 (use-modules (ice-9 rdelim))
diff --git a/gnucash/import-export/qif-imp/qif-import.scm b/gnucash/import-export/qif-imp/qif-import.scm
index 9f955fd9d..b4fdfe061 100644
--- a/gnucash/import-export/qif-imp/qif-import.scm
+++ b/gnucash/import-export/qif-imp/qif-import.scm
@@ -24,7 +24,7 @@
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 
-(define-module (gnucash import-export qif-import))
+(define-module (gnucash qif-import))
 (use-modules (gnucash utilities)) 
 (use-modules (gnucash app-utils))
 
@@ -46,14 +46,14 @@
 (gnc:module-load "gnucash/app-utils" 0)
 (gnc:module-load "gnucash/gnome-utils" 0)
 
-(load-from-path "qif-import/qif-objects")      ;; class definitions
-(load-from-path "qif-import/qif-parse")        ;; string-to-value
-(load-from-path "qif-import/qif-utils")
-(load-from-path "qif-import/qif-file")         ;; actual file reading
-(load-from-path "qif-import/qif-dialog-utils") ;; build displays
-(load-from-path "qif-import/qif-guess-map")    ;; build acct mappings
-(load-from-path "qif-import/qif-to-gnc")       ;; conv QIF xtns to GNC
-(load-from-path "qif-import/qif-merge-groups") ;; merge into user's acct
+(load-from-path "gnucash/qif-import/qif-objects")      ;; class definitions
+(load-from-path "gnucash/qif-import/qif-parse")        ;; string-to-value
+(load-from-path "gnucash/qif-import/qif-utils")
+(load-from-path "gnucash/qif-import/qif-file")         ;; actual file reading
+(load-from-path "gnucash/qif-import/qif-dialog-utils") ;; build displays
+(load-from-path "gnucash/qif-import/qif-guess-map")    ;; build acct mappings
+(load-from-path "gnucash/qif-import/qif-to-gnc")       ;; conv QIF xtns to GNC
+(load-from-path "gnucash/qif-import/qif-merge-groups") ;; merge into user's acct
 
 (export make-qif-file)
 (export make-ticker-map)
diff --git a/gnucash/import-export/qif-imp/qif-objects.scm b/gnucash/import-export/qif-imp/qif-objects.scm
index 9eafeb309..3ed4a12d3 100644
--- a/gnucash/import-export/qif-imp/qif-objects.scm
+++ b/gnucash/import-export/qif-imp/qif-objects.scm
@@ -23,7 +23,7 @@
 ;; Boston, MA  02110-1301,  USA       gnu at gnu.org
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
-(load-from-path "qif-import/simple-obj")
+(load-from-path "gnucash/qif-import/simple-obj")
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;  qif-file class 
diff --git a/gnucash/import-export/qif-imp/qif-parse.scm b/gnucash/import-export/qif-imp/qif-parse.scm
index 1a636694d..aa1877370 100644
--- a/gnucash/import-export/qif-imp/qif-parse.scm
+++ b/gnucash/import-export/qif-imp/qif-parse.scm
@@ -23,7 +23,7 @@
 ;; Boston, MA  02110-1301,  USA       gnu at gnu.org
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
-(use-modules (gnucash import-export string))
+(use-modules (gnucash string))
 
 (define qif-category-compiled-rexp
   (make-regexp "^ *(\\[)?([^]/|]*)(]?)(/?)([^|]*)(\\|(\\[)?([^]/]*)(]?)(/?)(.*))? *$"))
diff --git a/gnucash/import-export/qif-imp/qif-to-gnc.scm b/gnucash/import-export/qif-imp/qif-to-gnc.scm
index df74b48dc..03c841985 100644
--- a/gnucash/import-export/qif-imp/qif-to-gnc.scm
+++ b/gnucash/import-export/qif-imp/qif-to-gnc.scm
@@ -26,7 +26,7 @@
 
 
 (use-modules (srfi srfi-13))
-(use-modules (gnucash import-export string))
+(use-modules (gnucash string))
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;  qif-import:find-or-make-acct
diff --git a/gnucash/import-export/qif-imp/string.scm b/gnucash/import-export/qif-imp/string.scm
index f11cddf89..8978ccbd3 100644
--- a/gnucash/import-export/qif-imp/string.scm
+++ b/gnucash/import-export/qif-imp/string.scm
@@ -15,7 +15,7 @@
 ;; 51 Franklin Street, Fifth Floor    Fax:    +1-617-542-2652
 ;; Boston, MA  02110-1301,  USA       gnu at gnu.org
 
-(define-module (gnucash import-export string))
+(define-module (gnucash string))
 (use-modules (srfi srfi-13))
 
 
diff --git a/gnucash/report/CMakeLists.txt b/gnucash/report/CMakeLists.txt
index 9df673fd8..ba613a4be 100644
--- a/gnucash/report/CMakeLists.txt
+++ b/gnucash/report/CMakeLists.txt
@@ -50,9 +50,6 @@ install(FILES ${report_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gnucash)
 
 set (report_SCHEME
     report.scm
-    eguile-gnc.scm
-    eguile-utilities.scm
-    eguile-html-utilities.scm
 )
 
 set (report_SCHEME_2
@@ -78,6 +75,12 @@ set (report_SCHEME_2
     trep-engine.scm
 )
 
+set (report_SCHEME_3
+    eguile-gnc.scm
+    eguile-utilities.scm
+    eguile-html-utilities.scm
+)
+
 set(GUILE_DEPENDS
   gncmod-html
   scm-gnome-utils
@@ -89,7 +92,7 @@ set(GUILE_DEPENDS
 
 gnc_add_scheme_targets(scm-report-1
   "${report_SCHEME}"
-  "gnucash/report"
+  "gnucash"
   "${GUILE_DEPENDS}"
   FALSE
 )
@@ -101,13 +104,20 @@ gnc_add_scheme_targets(scm-report-2
   TRUE
 )
 
-add_custom_target(scm-report ALL DEPENDS scm-report-2)
+gnc_add_scheme_targets(scm-report-3
+  "${report_SCHEME_3}"
+  "gnucash/report"
+  scm-report-1
+  FALSE
+)
+
+add_custom_target(scm-report ALL DEPENDS scm-report-3)
 
 set_local_dist(report_DIST_local CMakeLists.txt
   report.i
   ${report_HEADERS} ${report_SOURCES}
   ${report_SCHEME} ${report_SCHEME_1}
-  ${report_SCHEME_2})
+  ${report_SCHEME_2} ${report_SCHEME_3})
 
 set(report_DIST ${report_DIST_local} ${jqplot_DIST} ${locale_specific_DIST}
                 ${reports_DIST} ${stylesheets_DIST} ${test_report_DIST} PARENT_SCOPE)
diff --git a/gnucash/report/gncmod-report.c b/gnucash/report/gncmod-report.c
index 011fd6017..5a075d788 100644
--- a/gnucash/report/gncmod-report.c
+++ b/gnucash/report/gncmod-report.c
@@ -72,7 +72,7 @@ libgncmod_report_gnc_module_init(int refcount)
     }
     scm_init_sw_report_module();
 
-    scm_c_eval_string("(use-modules (gnucash report report))");
+    scm_c_eval_string("(use-modules (gnucash report))");
 
     /* if this is the first time the module's being loaded, initialize
      * the relative date system */
diff --git a/gnucash/report/html-barchart.scm b/gnucash/report/html-barchart.scm
index a2e3a592e..0af3e2f31 100644
--- a/gnucash/report/html-barchart.scm
+++ b/gnucash/report/html-barchart.scm
@@ -21,7 +21,7 @@
 ;; Boston, MA  02110-1301,  USA       gnu at gnu.org
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
-(use-modules (gnucash report report))
+(use-modules (gnucash report))
 
 (define <html-barchart>
   (make-record-type "<html-barchart>"
diff --git a/gnucash/report/html-linechart.scm b/gnucash/report/html-linechart.scm
index fda8cf612..a4dfe74fe 100644
--- a/gnucash/report/html-linechart.scm
+++ b/gnucash/report/html-linechart.scm
@@ -24,7 +24,7 @@
 ;; Boston, MA  02110-1301,  USA       gnu at gnu.org
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
-(use-modules (gnucash report report))
+(use-modules (gnucash report))
 
 (define <html-linechart>
   (make-record-type "<html-linechart>"
diff --git a/gnucash/report/html-piechart.scm b/gnucash/report/html-piechart.scm
index 4df031fd0..3eee4e35a 100644
--- a/gnucash/report/html-piechart.scm
+++ b/gnucash/report/html-piechart.scm
@@ -21,7 +21,7 @@
 ;; Boston, MA  02110-1301,  USA       gnu at gnu.org
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
-(use-modules (gnucash report report))
+(use-modules (gnucash report))
 
 (define <html-piechart>
   (make-record-type "<html-piechart>"
diff --git a/gnucash/report/html-scatter.scm b/gnucash/report/html-scatter.scm
index 98116f400..cc931df6c 100644
--- a/gnucash/report/html-scatter.scm
+++ b/gnucash/report/html-scatter.scm
@@ -24,7 +24,7 @@
 ;; Boston, MA  02110-1301,  USA       gnu at gnu.org
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
-(use-modules (gnucash report report))
+(use-modules (gnucash report))
 
 (define <html-scatter>
   (make-record-type "<html-scatter>"
diff --git a/gnucash/report/report.scm b/gnucash/report/report.scm
index 454006c09..a6c5ca580 100644
--- a/gnucash/report/report.scm
+++ b/gnucash/report/report.scm
@@ -24,7 +24,7 @@
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 
-(define-module (gnucash report report))
+(define-module (gnucash report))
 (use-modules (gnucash utilities)) 
 (use-modules (ice-9 regex))
 (use-modules (srfi srfi-1))
diff --git a/gnucash/report/reports/reports.scm b/gnucash/report/reports/reports.scm
index 6ba1a7f4a..f5dbf453b 100644
--- a/gnucash/report/reports/reports.scm
+++ b/gnucash/report/reports/reports.scm
@@ -28,7 +28,7 @@
 (use-modules (srfi srfi-13))
 (use-modules (gnucash app-utils))
 (use-modules (gnucash core-utils))
-(use-modules (gnucash report report))
+(use-modules (gnucash report))
 (use-modules (gnucash utilities))
 
 (export gnc:register-report-create)
diff --git a/gnucash/report/reports/standard/test/test-average-balance.scm b/gnucash/report/reports/standard/test/test-average-balance.scm
index 3185c4975..376386959 100644
--- a/gnucash/report/reports/standard/test/test-average-balance.scm
+++ b/gnucash/report/reports/standard/test/test-average-balance.scm
@@ -3,7 +3,7 @@
 (gnc:module-begin-syntax (gnc:module-load "gnucash/report" 0))
 (use-modules (tests test-engine-extras))
 (use-modules (gnucash report reports example average-balance))
-(use-modules (gnucash report report))
+(use-modules (gnucash report))
 (use-modules (gnucash report reports standard budget))
 (use-modules (tests test-report-extras))
 (use-modules (gnucash report stylesheets))
diff --git a/gnucash/report/reports/standard/test/test-balsheet-pnl.scm b/gnucash/report/reports/standard/test/test-balsheet-pnl.scm
index 8736d6164..1944ab7e8 100644
--- a/gnucash/report/reports/standard/test/test-balsheet-pnl.scm
+++ b/gnucash/report/reports/standard/test/test-balsheet-pnl.scm
@@ -4,7 +4,7 @@
 (use-modules (gnucash report reports standard balance-sheet))
 (use-modules (gnucash report reports standard income-statement))
 (use-modules (gnucash report stylesheets))
-(use-modules (gnucash report report))
+(use-modules (gnucash report))
 (use-modules (tests test-report-extras))
 (use-modules (srfi srfi-64))
 (use-modules (tests srfi64-extras))
diff --git a/gnucash/report/reports/standard/test/test-budget.scm b/gnucash/report/reports/standard/test/test-budget.scm
index c5b4e5d7a..b15c607ef 100644
--- a/gnucash/report/reports/standard/test/test-budget.scm
+++ b/gnucash/report/reports/standard/test/test-budget.scm
@@ -26,7 +26,7 @@
 (gnc:module-begin-syntax (gnc:module-load "gnucash/report" 0))
 
 (use-modules (gnucash utilities))
-(use-modules (gnucash report report))
+(use-modules (gnucash report))
 (use-modules (gnucash app-utils))
 (use-modules (gnucash engine))
 (use-modules (sw_engine))
diff --git a/gnucash/report/reports/standard/test/test-cash-flow.scm b/gnucash/report/reports/standard/test/test-cash-flow.scm
index 1551291ba..68a3c43f4 100644
--- a/gnucash/report/reports/standard/test/test-cash-flow.scm
+++ b/gnucash/report/reports/standard/test/test-cash-flow.scm
@@ -4,7 +4,7 @@
 
 (use-modules (tests test-engine-extras))
 (use-modules (gnucash report reports standard cash-flow))
-(use-modules (gnucash report report))
+(use-modules (gnucash report))
 
 (define (run-test)
   (and (test test-one-tx-in-cash-flow)
diff --git a/gnucash/report/reports/standard/test/test-cashflow-barchart.scm b/gnucash/report/reports/standard/test/test-cashflow-barchart.scm
index e25e8d8ff..39a8ded15 100644
--- a/gnucash/report/reports/standard/test/test-cashflow-barchart.scm
+++ b/gnucash/report/reports/standard/test/test-cashflow-barchart.scm
@@ -26,7 +26,7 @@
 (use-modules (sw_engine))
 (use-modules (tests test-engine-extras))
 (use-modules (tests srfi64-extras))
-(use-modules (gnucash report report))
+(use-modules (gnucash report))
 (use-modules (tests test-report-extras))
 (use-modules (gnucash report reports standard cashflow-barchart))
 (use-modules (gnucash report stylesheets))
diff --git a/gnucash/report/reports/standard/test/test-charts.scm b/gnucash/report/reports/standard/test/test-charts.scm
index e0a9e37d9..a139d5edd 100644
--- a/gnucash/report/reports/standard/test/test-charts.scm
+++ b/gnucash/report/reports/standard/test/test-charts.scm
@@ -8,7 +8,7 @@
 (use-modules (gnucash report reports standard price-scatter))
 (use-modules (gnucash report reports example daily-reports))
 (use-modules (gnucash report stylesheets))
-(use-modules (gnucash report report))
+(use-modules (gnucash report))
 (use-modules (tests test-report-extras))
 (use-modules (srfi srfi-64))
 (use-modules (tests srfi64-extras))
diff --git a/gnucash/report/reports/standard/test/test-income-gst.scm b/gnucash/report/reports/standard/test/test-income-gst.scm
index 31ced870b..ed8c09807 100644
--- a/gnucash/report/reports/standard/test/test-income-gst.scm
+++ b/gnucash/report/reports/standard/test/test-income-gst.scm
@@ -3,7 +3,7 @@
 (use-modules (tests test-engine-extras))
 (use-modules (gnucash report reports standard income-gst-statement))
 (use-modules (gnucash report stylesheets))
-(use-modules (gnucash report report))
+(use-modules (gnucash report))
 (use-modules (tests test-report-extras))
 (use-modules (srfi srfi-64))
 (use-modules (tests srfi64-extras))
diff --git a/gnucash/report/reports/standard/test/test-invoice.scm b/gnucash/report/reports/standard/test/test-invoice.scm
index 173ba5c3d..f38ffbe88 100644
--- a/gnucash/report/reports/standard/test/test-invoice.scm
+++ b/gnucash/report/reports/standard/test/test-invoice.scm
@@ -3,7 +3,7 @@
 (use-modules (tests test-engine-extras))
 (use-modules (gnucash report reports standard invoice))
 (use-modules (gnucash report stylesheets))
-(use-modules (gnucash report report))
+(use-modules (gnucash report))
 (use-modules (tests test-report-extras))
 (use-modules (srfi srfi-1))
 (use-modules (srfi srfi-64))
diff --git a/gnucash/report/reports/standard/test/test-register.scm b/gnucash/report/reports/standard/test/test-register.scm
index e231283ba..39dcecb36 100644
--- a/gnucash/report/reports/standard/test/test-register.scm
+++ b/gnucash/report/reports/standard/test/test-register.scm
@@ -31,7 +31,7 @@
 (gnc:module-begin-syntax (gnc:module-load "gnucash/report" 0))
 
 (use-modules (gnucash utilities))
-(use-modules (gnucash report report))
+(use-modules (gnucash report))
 (use-modules (gnucash app-utils))
 (use-modules (gnucash engine))
 (use-modules (sw_engine))
diff --git a/gnucash/report/reports/standard/test/test-standard-category-report.scm b/gnucash/report/reports/standard/test/test-standard-category-report.scm
index ca313e806..e40720ae0 100644
--- a/gnucash/report/reports/standard/test/test-standard-category-report.scm
+++ b/gnucash/report/reports/standard/test/test-standard-category-report.scm
@@ -31,7 +31,7 @@
 (gnc:module-begin-syntax (gnc:module-load "gnucash/report" 0))
 
 (use-modules (gnucash utilities)) 
-(use-modules (gnucash report report))
+(use-modules (gnucash report))
 (use-modules (gnucash app-utils))
 (use-modules (gnucash engine))
 (use-modules (sw_engine))
diff --git a/gnucash/report/reports/standard/test/test-stress-options.scm b/gnucash/report/reports/standard/test/test-stress-options.scm
index 7abb06211..54bdaa325 100644
--- a/gnucash/report/reports/standard/test/test-stress-options.scm
+++ b/gnucash/report/reports/standard/test/test-stress-options.scm
@@ -8,7 +8,7 @@
 (use-modules (gnucash report reports standard view-column))
 (use-modules (gnucash report stylesheets))
 (use-modules (gnucash report reports standard taxinvoice))
-(use-modules (gnucash report report))
+(use-modules (gnucash report))
 (use-modules (tests test-report-extras))
 (use-modules (srfi srfi-64))
 (use-modules (srfi srfi-98))
diff --git a/gnucash/report/reports/standard/test/test-transaction.scm b/gnucash/report/reports/standard/test/test-transaction.scm
index 867a8fb2b..8b728c4e8 100644
--- a/gnucash/report/reports/standard/test/test-transaction.scm
+++ b/gnucash/report/reports/standard/test/test-transaction.scm
@@ -4,7 +4,7 @@
 (use-modules (gnucash report reports standard transaction))
 (use-modules (gnucash report reports standard reconcile-report))
 (use-modules (gnucash report stylesheets))
-(use-modules (gnucash report report))
+(use-modules (gnucash report))
 (use-modules (tests test-report-extras))
 (use-modules (srfi srfi-64))
 (use-modules (tests srfi64-extras))
diff --git a/gnucash/report/test/test-commodity-utils.scm b/gnucash/report/test/test-commodity-utils.scm
index 0c0a81fef..cb31104c6 100644
--- a/gnucash/report/test/test-commodity-utils.scm
+++ b/gnucash/report/test/test-commodity-utils.scm
@@ -29,7 +29,7 @@
 (use-modules (gnucash engine))
 (use-modules (sw_engine))
 (use-modules (sw_app_utils))
-(use-modules (gnucash report report))
+(use-modules (gnucash report))
 (use-modules (system vm coverage))
 
 (setlocale LC_ALL "C")
diff --git a/gnucash/report/test/test-html-chart.scm b/gnucash/report/test/test-html-chart.scm
index f077af86d..cea724ee4 100644
--- a/gnucash/report/test/test-html-chart.scm
+++ b/gnucash/report/test/test-html-chart.scm
@@ -7,7 +7,7 @@
 (use-modules (tests srfi64-extras))
 (use-modules (tests test-engine-extras))
 (use-modules (tests test-report-extras))
-(use-modules (gnucash report report))
+(use-modules (gnucash report))
 
 (define (run-test)
   (test-runner-factory gnc:test-runner)
diff --git a/gnucash/report/test/test-html-utilities-srfi64.scm b/gnucash/report/test/test-html-utilities-srfi64.scm
index d969a79d5..28457a3b0 100644
--- a/gnucash/report/test/test-html-utilities-srfi64.scm
+++ b/gnucash/report/test/test-html-utilities-srfi64.scm
@@ -5,7 +5,7 @@
 
 (use-modules (tests test-engine-extras))
 (use-modules (tests test-report-extras))
-(use-modules (gnucash report report))
+(use-modules (gnucash report))
 (use-modules (tests srfi64-extras))
 (use-modules (srfi srfi-64))
 
diff --git a/gnucash/report/test/test-report-extras.scm b/gnucash/report/test/test-report-extras.scm
index 9f7db0ad3..d02584927 100644
--- a/gnucash/report/test/test-report-extras.scm
+++ b/gnucash/report/test/test-report-extras.scm
@@ -21,7 +21,7 @@
 
 (use-modules (gnucash gnc-module))
 (use-modules (tests test-engine-extras))
-(use-modules (gnucash report report))
+(use-modules (gnucash report))
 (use-modules (sxml simple))
 (use-modules (sxml xpath))
 
diff --git a/gnucash/report/test/test-report-html.scm b/gnucash/report/test/test-report-html.scm
index c094bf1c6..d6dd5609e 100644
--- a/gnucash/report/test/test-report-html.scm
+++ b/gnucash/report/test/test-report-html.scm
@@ -3,7 +3,7 @@
 (gnc:module-begin-syntax (gnc:module-load "gnucash/app-utils" 0))
 
 (use-modules (tests test-engine-extras))
-(use-modules (gnucash report report))
+(use-modules (gnucash report))
 (use-modules (srfi srfi-64))
 (use-modules (tests srfi64-extras))
 
diff --git a/gnucash/report/test/test-report-utilities.scm b/gnucash/report/test/test-report-utilities.scm
index 542177b52..87402c22f 100644
--- a/gnucash/report/test/test-report-utilities.scm
+++ b/gnucash/report/test/test-report-utilities.scm
@@ -7,7 +7,7 @@
 (use-modules (tests srfi64-extras))
 (use-modules (tests test-engine-extras))
 (use-modules (tests test-report-extras))
-(use-modules (gnucash report report))
+(use-modules (gnucash report))
 
 (setlocale LC_ALL "C")
 
diff --git a/gnucash/report/test/test-report.scm b/gnucash/report/test/test-report.scm
index 1e3819c40..481022214 100644
--- a/gnucash/report/test/test-report.scm
+++ b/gnucash/report/test/test-report.scm
@@ -3,7 +3,7 @@
 (gnc:module-begin-syntax (gnc:module-load "gnucash/app-utils" 0))
 
 (use-modules (tests test-engine-extras))
-(use-modules (gnucash report report))
+(use-modules (gnucash report))
 (use-modules (srfi srfi-64))
 (use-modules (tests srfi64-extras))
 
diff --git a/libgnucash/app-utils/CMakeLists.txt b/libgnucash/app-utils/CMakeLists.txt
index 8fa296843..aafc607ad 100644
--- a/libgnucash/app-utils/CMakeLists.txt
+++ b/libgnucash/app-utils/CMakeLists.txt
@@ -151,12 +151,9 @@ install(FILES ${app_utils_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gnuca
 
 # And now handle scheme files
 
-set (app_utils_SCHEME_2
-    app-utils.scm
-)
-
 set (app_utils_SCHEME_1
     business-options.scm
+    business-prefs.scm
     c-interface.scm
     date-utilities.scm
     options.scm
@@ -164,8 +161,8 @@ set (app_utils_SCHEME_1
     fin.scm
 )
 
-set(app_utils_SCHEME_3
-    business-prefs.scm
+set (app_utils_SCHEME_2
+    app-utils.scm
 )
 
 set(GUILE_DEPENDS
@@ -180,14 +177,14 @@ gnc_add_scheme_targets(scm-gettext
   gettext.scm
   gnucash
   gncmod-app-utils
-  FALSE
+  TRUE
 )
 
 gnc_add_scheme_targets(scm-app-utils-1
   "${app_utils_SCHEME_1}"
-  ""
+  "gnucash/app-utils"
   "scm-gettext;${GUILE_DEPENDS}"
-  FALSE
+  TRUE
 )
 
 gnc_add_scheme_targets(scm-app-utils-2
@@ -197,14 +194,7 @@ gnc_add_scheme_targets(scm-app-utils-2
   FALSE
 )
 
-gnc_add_scheme_targets(scm-app-utils-3
-  "${app_utils_SCHEME_3}"
-  ""
-  "scm-app-utils-2"
-  FALSE
-)
-
-add_custom_target(scm-app-utils ALL DEPENDS scm-app-utils-3 scm-app-utils-2 scm-app-utils-1 scm-gettext)
+add_custom_target(scm-app-utils ALL DEPENDS scm-app-utils-2 scm-app-utils-1 scm-gettext)
 
 set_local_dist(app_utils_DIST_local
         ${app_utils_ALL_SOURCES} gettext.scm ${app_utils_SCHEME_1} ${app_utils_SCHEME_2} ${app_utils_SCHEME_3}
diff --git a/libgnucash/app-utils/app-utils.scm b/libgnucash/app-utils/app-utils.scm
index a325e81ec..bcfd9ad14 100644
--- a/libgnucash/app-utils/app-utils.scm
+++ b/libgnucash/app-utils/app-utils.scm
@@ -266,10 +266,10 @@
 (define gnc:*kvp-option-path* (list KVP-OPTION-PATH))
 (export gnc:*kvp-option-path*)
 
-(load-from-path "c-interface")
-(load-from-path "options")
-(load-from-path "prefs")
-(load-from-path "date-utilities")
+(load-from-path "gnucash/app-utils/c-interface")
+(load-from-path "gnucash/app-utils/options")
+(load-from-path "gnucash/app-utils/prefs")
+(load-from-path "gnucash/app-utils/date-utilities")
 
 ;; Business options
 (define gnc:*business-label* (N_ "Business"))
@@ -318,5 +318,5 @@
 
 (export gnc:*option-section-budgeting* gnc:*option-name-default-budget*)
 
-(load-from-path "business-options")
-(load-from-path "business-prefs")
+(load-from-path "gnucash/app-utils/business-options")
+(load-from-path "gnucash/app-utils/business-prefs")
diff --git a/libgnucash/app-utils/business-prefs.scm b/libgnucash/app-utils/business-prefs.scm
index 60f7bf623..9f4a666ca 100644
--- a/libgnucash/app-utils/business-prefs.scm
+++ b/libgnucash/app-utils/business-prefs.scm
@@ -19,7 +19,7 @@
 ;; 51 Franklin Street, Fifth Floor    Fax:    +1-617-542-2652
 ;; Boston, MA  02110-1301,  USA       gnu at gnu.org
 
-(use-modules (gnucash app-utils))
+(use-modules (gnucash gettext))
 
 (define gnc:*option-section-counters* (N_ "Counters"))
 
diff --git a/libgnucash/app-utils/gnc-exp-parser.c b/libgnucash/app-utils/gnc-exp-parser.c
index 38c011980..35179f33a 100644
--- a/libgnucash/app-utils/gnc-exp-parser.c
+++ b/libgnucash/app-utils/gnc-exp-parser.c
@@ -81,7 +81,7 @@ gnc_exp_parser_real_init ( gboolean addPredefined )
         gnc_exp_parser_shutdown ();
 
     /* The parser uses fin.scm for financial functions, so load it here. */
-    scm_primitive_load_path(scm_from_utf8_string("fin"));
+    scm_primitive_load_path(scm_from_utf8_string("gnucash/app-utils/fin"));
     variable_bindings = g_hash_table_new (g_str_hash, g_str_equal);
 
     /* This comes after the statics have been initialized. Not at the end! */
diff --git a/libgnucash/app-utils/test/test-c-interface.scm b/libgnucash/app-utils/test/test-c-interface.scm
index fe2445cd4..8b41b6210 100644
--- a/libgnucash/app-utils/test/test-c-interface.scm
+++ b/libgnucash/app-utils/test/test-c-interface.scm
@@ -19,7 +19,7 @@
 
 (setenv "GNC_UNINSTALLED" "1")
 (debug-set! stack 50000)
-(load-from-path "c-interface")
+(load-from-path "gnucash/app-utils/c-interface")
 (use-modules (tests test-engine-extras))
 
 (define (test-func a b)
diff --git a/libgnucash/engine/CMakeLists.txt b/libgnucash/engine/CMakeLists.txt
index d90d3eef3..7f387b880 100644
--- a/libgnucash/engine/CMakeLists.txt
+++ b/libgnucash/engine/CMakeLists.txt
@@ -298,9 +298,9 @@ gnc_add_scheme_targets(scm-engine-0
 
 gnc_add_scheme_targets(scm-engine-1
   "${engine_SCHEME_1}"
-  ""
+  "gnucash/engine"
   "scm-engine-0;${GUILE_DEPENDS}"
-  FALSE
+  TRUE
 )
 
 add_custom_target(scm-engine ALL DEPENDS scm-engine-1 scm-engine-0)
diff --git a/libgnucash/engine/engine.scm b/libgnucash/engine/engine.scm
index 7776910c6..71e39fa96 100644
--- a/libgnucash/engine/engine.scm
+++ b/libgnucash/engine/engine.scm
@@ -115,7 +115,7 @@
 (export trans-splits)
 (export gnc:transaction-scm-onto-transaction)
 
-(load-from-path "gnc-numeric")
-(load-from-path "commodity-table")
-(load-from-path "engine-interface")
-(load-from-path "engine-utilities")
+(load-from-path "gnucash/engine/gnc-numeric")
+(load-from-path "gnucash/engine/commodity-table")
+(load-from-path "gnucash/engine/engine-interface")
+(load-from-path "gnucash/engine/engine-utilities")
diff --git a/libgnucash/tax/us/CMakeLists.txt b/libgnucash/tax/us/CMakeLists.txt
index 56da48b3b..7e0fd9bcc 100644
--- a/libgnucash/tax/us/CMakeLists.txt
+++ b/libgnucash/tax/us/CMakeLists.txt
@@ -23,26 +23,44 @@ install(TARGETS gncmod-tax-us
 
 # Scheme
 
-set(gncmod_tax_us_SCHEME_1 txf.scm txf-help.scm txf-de_DE.scm txf-help-de_DE.scm)
-set(gncmod_tax_us_SCHEME_2 de_DE.scm us.scm)
+set(gncmod_tax_us_SCHEME_1 txf.scm txf-help.scm)
+set(gncmod_tax_us_SCHEME_2 tax-us.scm)
 
-set(GUILE_DEPENDS      scm-app-utils scm-gnc-module)
+set(gncmod_tax_de_DE_SCHEME_1 txf-de_DE.scm txf-help-de_DE.scm)
+set(gncmod_tax_de_DE_SCHEME_2 tax-de_DE.scm)
+
+set(GUILE_DEPENDS scm-app-utils scm-gnc-module)
 
 gnc_add_scheme_targets(scm-tax-us-1
   "${gncmod_tax_us_SCHEME_1}"
-  ""
+  "gnucash/tax-us"
   "${GUILE_DEPENDS}"
-  FALSE
+  TRUE
   )
 gnc_add_scheme_targets(scm-tax-us-2
   "${gncmod_tax_us_SCHEME_2}"
-  gnucash/tax
+  gnucash
+  "${GUILE_DEPENDS}"
+  FALSE
+  )
+
+gnc_add_scheme_targets(scm-tax-de_DE-1
+  "${gncmod_tax_de_DE_SCHEME_1}"
+  "gnucash/tax-de_DE"
+  "${GUILE_DEPENDS}"
+  TRUE
+  )
+gnc_add_scheme_targets(scm-tax-de_DE-2
+  "${gncmod_tax_de_DE_SCHEME_2}"
+  gnucash
   "${GUILE_DEPENDS}"
   FALSE
   )
 
-add_custom_target(scm-tax-us ALL DEPENDS scm-tax-us-1 scm-tax-us-2)
+add_custom_target(scm-tax-us ALL DEPENDS scm-tax-us-1 scm-tax-us-2 scm-tax-de_DE-1 scm-tax-de_DE-2 )
 
-set_local_dist(tax_us_DIST_local CMakeLists.txt ${tax_us_SOURCES} ${gncmod_tax_us_SCHEME_1} ${gncmod_tax_us_SCHEME_2})
+set_local_dist(tax_us_DIST_local CMakeLists.txt ${tax_us_SOURCES}
+    ${gncmod_tax_us_SCHEME_1} ${gncmod_tax_us_SCHEME_2}
+    ${gncmod_tax_de_DE_SCHEME_1} ${gncmod_tax_de_DE_SCHEME_2})
 set(tax_us_DIST ${tax_us_DIST_local} ${test_tax_us_DIST} PARENT_SCOPE)
 
diff --git a/libgnucash/tax/us/gncmod-tax-us.c b/libgnucash/tax/us/gncmod-tax-us.c
index 23e776a30..f08134e17 100644
--- a/libgnucash/tax/us/gncmod-tax-us.c
+++ b/libgnucash/tax/us/gncmod-tax-us.c
@@ -91,9 +91,9 @@ libgncmod_tax_us_gnc_module_init(int refcount)
     gboolean is_de_DE = (strncmp(thislocale, "de_DE", 5) == 0);
 # endif /* G_OS_WIN32 */
     if (is_de_DE)
-        lmod("(gnucash tax de_DE)");
+        lmod("(gnucash tax-de_DE)");
     else
-        lmod("(gnucash tax us)");
+        lmod("(gnucash tax-us)");
     return TRUE;
 }
 
diff --git a/libgnucash/tax/us/de_DE.scm b/libgnucash/tax/us/tax-de_DE.scm
similarity index 93%
rename from libgnucash/tax/us/de_DE.scm
rename to libgnucash/tax/us/tax-de_DE.scm
index 54bb9f74a..26d420046 100644
--- a/libgnucash/tax/us/de_DE.scm
+++ b/libgnucash/tax/us/tax-de_DE.scm
@@ -17,7 +17,7 @@
 ;; Boston, MA  02110-1301,  USA       gnu at gnu.org
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
-(define-module (gnucash tax de_DE))
+(define-module (gnucash tax-de_DE))
 
 (use-modules (gnucash gnc-module))
 (eval-when
@@ -54,5 +54,5 @@
 
 (export gnc:*tax-label* gnc:*tax-nr-label*)
 
-(load-from-path "txf-de_DE")
-(load-from-path "txf-help-de_DE")
+(load-from-path "gnucash/tax-de_DE/txf-de_DE")
+(load-from-path "gnucash/tax-de_DE/txf-help-de_DE")
diff --git a/libgnucash/tax/us/us.scm b/libgnucash/tax/us/tax-us.scm
similarity index 93%
rename from libgnucash/tax/us/us.scm
rename to libgnucash/tax/us/tax-us.scm
index a5182310f..d613406e1 100644
--- a/libgnucash/tax/us/us.scm
+++ b/libgnucash/tax/us/tax-us.scm
@@ -17,7 +17,7 @@
 ;; Boston, MA  02110-1301,  USA       gnu at gnu.org
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
-(define-module (gnucash tax us))
+(define-module (gnucash tax-us))
 
 (export gnc:txf-get-payer-name-source)
 (export gnc:txf-get-form)
@@ -40,5 +40,5 @@
 (export txf-asset-categories)
 (export txf-liab-eq-categories)
 
-(load-from-path "txf")
-(load-from-path "txf-help")
+(load-from-path "gnucash/tax-us/txf")
+(load-from-path "gnucash/tax-us/txf-help")
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 55eeae484..01e0d6b97 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -700,10 +700,10 @@ libgnucash/gnc-module/gnc-module.c
 libgnucash/gnc-module/gnc-module.scm
 libgnucash/scm/price-quotes.scm
 libgnucash/scm/utilities.scm
-libgnucash/tax/us/de_DE.scm
 libgnucash/tax/us/gncmod-tax-us.c
+libgnucash/tax/us/tax-de_DE.scm
+libgnucash/tax/us/tax-us.scm
 libgnucash/tax/us/txf-de_DE.scm
 libgnucash/tax/us/txf-help-de_DE.scm
 libgnucash/tax/us/txf-help.scm
 libgnucash/tax/us/txf.scm
-libgnucash/tax/us/us.scm

commit cb50f7aaa000661d23713c8625d75a71d6436e25
Author: Geert Janssens <geert at kobaltwit.be>
Date:   Wed Jun 12 16:50:58 2019 +0200

    RptCleanup - fold report/report-system into report
    
    This moves a lot of files and all scm modules that get moved need to have their definition updated.
    Aside of that, it also tweaks the install location of the report scm files that are not modules
    (but instead included in report.scm).
    Lastly, report-system.scm has been renamed to report.scm to match the gnc-module name.
    This required a rename of the original report.scm (which is not a module). I chose to rename
    that to report-core.scm as it's implementing the guts of the report system.
    
    Still missing in this commit: some compatibility code to give users a warning when they try to
    use the old scm module names.

diff --git a/.gitignore b/.gitignore
index b13f1f21d..b22d3ea74 100644
--- a/.gitignore
+++ b/.gitignore
@@ -173,8 +173,8 @@ gnucash/register/register-gnome/test/test-link-module
 gnucash/report/business-reports/gnucash
 gnucash/report/locale-specific/us/gnucash
 gnucash/report/locale-specific/us/test/test-link-module
-gnucash/report/report-system/gnucash
-gnucash/report/report-system/test/test-link-module
+gnucash/report/gnucash
+gnucash/report/test/test-link-module
 gnucash/report/reports/gnucash
 gnucash/report/stylesheets/gnucash
 gnucash/report/utility-reports/gnucash
diff --git a/gnucash/CMakeLists.txt b/gnucash/CMakeLists.txt
index f9ca797bc..227c5faab 100644
--- a/gnucash/CMakeLists.txt
+++ b/gnucash/CMakeLists.txt
@@ -66,7 +66,7 @@ endif (BUILDING_FROM_VCS)
 
 target_link_libraries (gnucash
    gncmod-ledger-core gnc-gnome gncmod-gnome-utils gncmod-app-utils
-   gncmod-engine gnc-module gnc-core-utils gncmod-report-system
+   gncmod-engine gnc-module gnc-core-utils gncmod-report
    ${GUILE_LDFLAGS} ${GLIB2_LDFLAGS} ${GTK3_LDFLAGS} ${GTK_MAC_LDFLAGS}
 )
 
diff --git a/gnucash/gnome/CMakeLists.txt b/gnucash/gnome/CMakeLists.txt
index 0a37e0471..9e85879e6 100644
--- a/gnucash/gnome/CMakeLists.txt
+++ b/gnucash/gnome/CMakeLists.txt
@@ -134,7 +134,7 @@ set (gnc_gnome_SOURCES
 set_source_files_properties (${gnc_gnome_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
 
 add_library (gnc-gnome ${gnc_gnome_SOURCES} ${gnc_gnome_noinst_HEADERS} ${SWIG_GNOME_C})
-target_link_libraries(gnc-gnome gncmod-gnome-search gncmod-ledger-core gncmod-html gncmod-report-system
+target_link_libraries(gnc-gnome gncmod-gnome-search gncmod-ledger-core gncmod-html gncmod-report
     gncmod-register-gnome gncmod-register-core gncmod-gnome-utils gncmod-engine ${GTK3_LDFLAGS} ${GTK_MAC_LDFLAGS})
 
 target_compile_definitions (gnc-gnome PRIVATE -DG_LOG_DOMAIN=\"gnc.gui\" ${GTK_MAC_CFLAGS_OTHER})
@@ -228,7 +228,7 @@ set(GUILE_DEPENDS
     scm-gnome-utils
     scm-gnc-module
     scm-scm
-    scm-report-system
+    scm-report
     scm-reports
 )
 
diff --git a/gnucash/gnome/report-menus.scm b/gnucash/gnome/report-menus.scm
index 2def1567d..f4e313bb0 100644
--- a/gnucash/gnome/report-menus.scm
+++ b/gnucash/gnome/report-menus.scm
@@ -37,7 +37,7 @@
 (use-modules (sw_gnome))
 
 (gnc:module-load "gnucash/gnome-utils" 0)
-(gnc:module-begin-syntax (gnc:module-load "gnucash/report/report-system" 0))
+(gnc:module-begin-syntax (gnc:module-load "gnucash/report" 0))
 
 (export gnc:report-menu-setup)
 (export gnc:add-report-template-menu-items)
diff --git a/gnucash/gnucash-bin.c b/gnucash/gnucash-bin.c
index f95331960..e6cb432e5 100644
--- a/gnucash/gnucash-bin.c
+++ b/gnucash/gnucash-bin.c
@@ -501,7 +501,7 @@ load_gnucash_modules()
         { "gnucash/import-export/aqbanking", 0, TRUE },
         { "gnucash/import-export/bi-import", 0, TRUE},
         { "gnucash/import-export/customer-import", 0, TRUE},
-        { "gnucash/report/report-system", 0, FALSE },
+        { "gnucash/report", 0, FALSE },
         { "gnucash/report/stylesheets", 0, FALSE },
         { "gnucash/report/locale-specific/us", 0, FALSE },
         { "gnucash/python", 0, TRUE },
diff --git a/gnucash/report/CMakeLists.txt b/gnucash/report/CMakeLists.txt
index 5d5ca40dc..9df673fd8 100644
--- a/gnucash/report/CMakeLists.txt
+++ b/gnucash/report/CMakeLists.txt
@@ -1,10 +1,113 @@
 
 add_subdirectory(jqplot)
 add_subdirectory(locale-specific)
-add_subdirectory(report-system)
 add_subdirectory(reports)
 add_subdirectory(stylesheets)
+add_subdirectory(test)
 
-set_local_dist(report_DIST_local CMakeLists.txt )
-set(report_DIST ${report_DIST_local} ${jqplot_DIST} ${locale_specific_DIST} ${report_system_DIST}
-                ${reports_DIST} ${stylesheets_DIST} PARENT_SCOPE)
+set (report_HEADERS
+  gnc-report.h
+)
+
+# Command to generate the swig-report.c wrapper file
+gnc_add_swig_guile_command (swig-report-c
+    SWIG_REPORT_C swig-report.c
+    ${CMAKE_CURRENT_SOURCE_DIR}/report.i ${report_HEADERS}
+)
+
+set (report_SOURCES
+  gncmod-report.c
+  gnc-report.c
+)
+
+add_library (gncmod-report
+  ${report_SOURCES}
+  ${report_HEADERS}
+  ${SWIG_REPORT_C}
+)
+
+target_compile_definitions(gncmod-report PRIVATE -DG_LOG_DOMAIN=\"gnc.report.core\")
+
+target_link_libraries(gncmod-report gnc-module gncmod-app-utils ${GTK3_LDFLAGS} ${GUILE_LDFLAGS})
+
+target_include_directories (gncmod-report
+    PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} PRIVATE ${GTK3_INCLUDE_DIRS}
+)
+
+
+if (APPLE)
+  set_target_properties (gncmod-report PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/gnucash")
+endif()
+
+install(TARGETS gncmod-report
+  LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash
+  ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash
+  RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+
+install(FILES ${report_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gnucash)
+
+# Scheme
+
+set (report_SCHEME
+    report.scm
+    eguile-gnc.scm
+    eguile-utilities.scm
+    eguile-html-utilities.scm
+)
+
+set (report_SCHEME_2
+    commodity-utilities.scm
+    html-acct-table.scm
+    html-chart.scm
+    html-barchart.scm
+    html-document.scm
+    html-fonts.scm
+    html-piechart.scm
+    html-scatter.scm
+    html-linechart.scm
+    html-style-info.scm
+    html-style-sheet.scm
+    html-anytag.scm
+    html-table.scm
+    html-text.scm
+    html-utilities.scm
+    options-utilities.scm
+    report-core.scm
+    report-utilities.scm
+    report-register-hooks.scm
+    trep-engine.scm
+)
+
+set(GUILE_DEPENDS
+  gncmod-html
+  scm-gnome-utils
+  gncmod-report
+  scm-app-utils
+  scm-scm
+  scm-gnc-module
+  )
+
+gnc_add_scheme_targets(scm-report-1
+  "${report_SCHEME}"
+  "gnucash/report"
+  "${GUILE_DEPENDS}"
+  FALSE
+)
+
+gnc_add_scheme_targets(scm-report-2
+  "${report_SCHEME_2}"
+  "gnucash/report"
+  scm-report-1
+  TRUE
+)
+
+add_custom_target(scm-report ALL DEPENDS scm-report-2)
+
+set_local_dist(report_DIST_local CMakeLists.txt
+  report.i
+  ${report_HEADERS} ${report_SOURCES}
+  ${report_SCHEME} ${report_SCHEME_1}
+  ${report_SCHEME_2})
+
+set(report_DIST ${report_DIST_local} ${jqplot_DIST} ${locale_specific_DIST}
+                ${reports_DIST} ${stylesheets_DIST} ${test_report_DIST} PARENT_SCOPE)
diff --git a/gnucash/report/report-system/commodity-utilities.scm b/gnucash/report/commodity-utilities.scm
similarity index 100%
rename from gnucash/report/report-system/commodity-utilities.scm
rename to gnucash/report/commodity-utilities.scm
diff --git a/gnucash/report/report-system/doc/report-html.txt b/gnucash/report/doc/report-html.txt
similarity index 100%
rename from gnucash/report/report-system/doc/report-html.txt
rename to gnucash/report/doc/report-html.txt
diff --git a/gnucash/report/report-system/eguile-gnc.scm b/gnucash/report/eguile-gnc.scm
similarity index 100%
rename from gnucash/report/report-system/eguile-gnc.scm
rename to gnucash/report/eguile-gnc.scm
diff --git a/gnucash/report/report-system/eguile-html-utilities.scm b/gnucash/report/eguile-html-utilities.scm
similarity index 99%
rename from gnucash/report/report-system/eguile-html-utilities.scm
rename to gnucash/report/eguile-html-utilities.scm
index 8a7030bab..3f4a44d19 100644
--- a/gnucash/report/report-system/eguile-html-utilities.scm
+++ b/gnucash/report/eguile-html-utilities.scm
@@ -29,7 +29,7 @@
 (use-modules (gnucash utilities))
 (use-modules (gnucash gnc-module))
 (use-modules (gnucash app-utils))
-(gnc:module-load "gnucash/report/report-system" 0)
+(gnc:module-load "gnucash/report" 0)
 (gnc:module-load "gnucash/app-utils" 0)
 
 (use-modules (ice-9 regex))  ; for regular expressions
diff --git a/gnucash/report/report-system/eguile-utilities.scm b/gnucash/report/eguile-utilities.scm
similarity index 98%
rename from gnucash/report/report-system/eguile-utilities.scm
rename to gnucash/report/eguile-utilities.scm
index 25a91d860..e18dfdbaf 100644
--- a/gnucash/report/report-system/eguile-utilities.scm
+++ b/gnucash/report/eguile-utilities.scm
@@ -30,7 +30,7 @@
 (use-modules (gnucash gnc-module))
 (use-modules (gnucash app-utils))
 (use-modules (gnucash core-utils))
-(gnc:module-load "gnucash/report/report-system" 0)
+(gnc:module-load "gnucash/report" 0)
 (gnc:module-load "gnucash/app-utils" 0)
 
 
diff --git a/gnucash/report/report-system/gnc-report.c b/gnucash/report/gnc-report.c
similarity index 100%
rename from gnucash/report/report-system/gnc-report.c
rename to gnucash/report/gnc-report.c
diff --git a/gnucash/report/report-system/gnc-report.h b/gnucash/report/gnc-report.h
similarity index 100%
rename from gnucash/report/report-system/gnc-report.h
rename to gnucash/report/gnc-report.h
diff --git a/gnucash/report/report-system/gncmod-report-system.c b/gnucash/report/gncmod-report.c
similarity index 77%
rename from gnucash/report/report-system/gncmod-report-system.c
rename to gnucash/report/gncmod-report.c
index bd6d3e792..011fd6017 100644
--- a/gnucash/report/report-system/gncmod-report-system.c
+++ b/gnucash/report/gncmod-report.c
@@ -1,5 +1,5 @@
 /*********************************************************************
- * gncmod-report-system.c
+ * gncmod-report.c
  * module definition/initialization for the report infrastructure
  *
  * Copyright (c) 2001 Linux Developers Group, Inc.
@@ -32,33 +32,33 @@
 #include "gnc-module.h"
 #include "gnc-module-api.h"
 
-GNC_MODULE_API_DECL(libgncmod_report_system)
+GNC_MODULE_API_DECL(libgncmod_report)
 
 /* version of the gnc module system interface we require */
-int libgncmod_report_system_gnc_module_system_interface = 0;
+int libgncmod_report_gnc_module_system_interface = 0;
 
 /* module versioning uses libtool semantics. */
-int libgncmod_report_system_gnc_module_current  = 0;
-int libgncmod_report_system_gnc_module_revision = 0;
-int libgncmod_report_system_gnc_module_age      = 0;
+int libgncmod_report_gnc_module_current  = 0;
+int libgncmod_report_gnc_module_revision = 0;
+int libgncmod_report_gnc_module_age      = 0;
 
 
 char *
-libgncmod_report_system_gnc_module_path(void)
+libgncmod_report_gnc_module_path(void)
 {
-    return g_strdup("gnucash/report/report-system");
+    return g_strdup("gnucash/report");
 }
 
 char *
-libgncmod_report_system_gnc_module_description(void)
+libgncmod_report_gnc_module_description(void)
 {
     return g_strdup("Core components of GnuCash report generation system");
 }
 
-extern SCM scm_init_sw_report_system_module(void);
+extern SCM scm_init_sw_report_module(void);
 
 int
-libgncmod_report_system_gnc_module_init(int refcount)
+libgncmod_report_gnc_module_init(int refcount)
 {
     /* load the engine (we depend on it) */
     if (!gnc_module_load("gnucash/engine", 0))
@@ -70,9 +70,9 @@ libgncmod_report_system_gnc_module_init(int refcount)
     {
         return FALSE;
     }
-    scm_init_sw_report_system_module();
+    scm_init_sw_report_module();
 
-    scm_c_eval_string("(use-modules (gnucash report report-system))");
+    scm_c_eval_string("(use-modules (gnucash report report))");
 
     /* if this is the first time the module's being loaded, initialize
      * the relative date system */
@@ -85,7 +85,7 @@ libgncmod_report_system_gnc_module_init(int refcount)
 }
 
 int
-libgncmod_report_system_gnc_module_end(int refcount)
+libgncmod_report_gnc_module_end(int refcount)
 {
     return TRUE;
 }
diff --git a/gnucash/report/report-system/html-acct-table.scm b/gnucash/report/html-acct-table.scm
similarity index 100%
rename from gnucash/report/report-system/html-acct-table.scm
rename to gnucash/report/html-acct-table.scm
diff --git a/gnucash/report/report-system/html-anytag.scm b/gnucash/report/html-anytag.scm
similarity index 100%
rename from gnucash/report/report-system/html-anytag.scm
rename to gnucash/report/html-anytag.scm
diff --git a/gnucash/report/report-system/html-barchart.scm b/gnucash/report/html-barchart.scm
similarity index 99%
rename from gnucash/report/report-system/html-barchart.scm
rename to gnucash/report/html-barchart.scm
index 8b3f84736..a2e3a592e 100644
--- a/gnucash/report/report-system/html-barchart.scm
+++ b/gnucash/report/html-barchart.scm
@@ -21,7 +21,7 @@
 ;; Boston, MA  02110-1301,  USA       gnu at gnu.org
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
-(use-modules (gnucash report report-system))
+(use-modules (gnucash report report))
 
 (define <html-barchart>
   (make-record-type "<html-barchart>"
diff --git a/gnucash/report/report-system/html-chart.scm b/gnucash/report/html-chart.scm
similarity index 100%
rename from gnucash/report/report-system/html-chart.scm
rename to gnucash/report/html-chart.scm
diff --git a/gnucash/report/report-system/html-document.scm b/gnucash/report/html-document.scm
similarity index 100%
rename from gnucash/report/report-system/html-document.scm
rename to gnucash/report/html-document.scm
diff --git a/gnucash/report/report-system/html-fonts.scm b/gnucash/report/html-fonts.scm
similarity index 100%
rename from gnucash/report/report-system/html-fonts.scm
rename to gnucash/report/html-fonts.scm
diff --git a/gnucash/report/report-system/html-linechart.scm b/gnucash/report/html-linechart.scm
similarity index 99%
rename from gnucash/report/report-system/html-linechart.scm
rename to gnucash/report/html-linechart.scm
index b9778a6ea..fda8cf612 100644
--- a/gnucash/report/report-system/html-linechart.scm
+++ b/gnucash/report/html-linechart.scm
@@ -24,7 +24,7 @@
 ;; Boston, MA  02110-1301,  USA       gnu at gnu.org
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
-(use-modules (gnucash report report-system))
+(use-modules (gnucash report report))
 
 (define <html-linechart>
   (make-record-type "<html-linechart>"
diff --git a/gnucash/report/report-system/html-piechart.scm b/gnucash/report/html-piechart.scm
similarity index 99%
rename from gnucash/report/report-system/html-piechart.scm
rename to gnucash/report/html-piechart.scm
index de705f5ea..4df031fd0 100644
--- a/gnucash/report/report-system/html-piechart.scm
+++ b/gnucash/report/html-piechart.scm
@@ -21,7 +21,7 @@
 ;; Boston, MA  02110-1301,  USA       gnu at gnu.org
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
-(use-modules (gnucash report report-system))
+(use-modules (gnucash report report))
 
 (define <html-piechart>
   (make-record-type "<html-piechart>"
diff --git a/gnucash/report/report-system/html-scatter.scm b/gnucash/report/html-scatter.scm
similarity index 99%
rename from gnucash/report/report-system/html-scatter.scm
rename to gnucash/report/html-scatter.scm
index 67647b344..98116f400 100644
--- a/gnucash/report/report-system/html-scatter.scm
+++ b/gnucash/report/html-scatter.scm
@@ -24,7 +24,7 @@
 ;; Boston, MA  02110-1301,  USA       gnu at gnu.org
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
-(use-modules (gnucash report report-system))
+(use-modules (gnucash report report))
 
 (define <html-scatter>
   (make-record-type "<html-scatter>"
diff --git a/gnucash/report/report-system/html-style-info.scm b/gnucash/report/html-style-info.scm
similarity index 100%
rename from gnucash/report/report-system/html-style-info.scm
rename to gnucash/report/html-style-info.scm
diff --git a/gnucash/report/report-system/html-style-sheet.scm b/gnucash/report/html-style-sheet.scm
similarity index 100%
rename from gnucash/report/report-system/html-style-sheet.scm
rename to gnucash/report/html-style-sheet.scm
diff --git a/gnucash/report/report-system/html-table.scm b/gnucash/report/html-table.scm
similarity index 100%
rename from gnucash/report/report-system/html-table.scm
rename to gnucash/report/html-table.scm
diff --git a/gnucash/report/report-system/html-text.scm b/gnucash/report/html-text.scm
similarity index 100%
rename from gnucash/report/report-system/html-text.scm
rename to gnucash/report/html-text.scm
diff --git a/gnucash/report/report-system/html-utilities.scm b/gnucash/report/html-utilities.scm
similarity index 100%
rename from gnucash/report/report-system/html-utilities.scm
rename to gnucash/report/html-utilities.scm
diff --git a/gnucash/report/locale-specific/us/CMakeLists.txt b/gnucash/report/locale-specific/us/CMakeLists.txt
index 51b03a4da..a132af438 100644
--- a/gnucash/report/locale-specific/us/CMakeLists.txt
+++ b/gnucash/report/locale-specific/us/CMakeLists.txt
@@ -38,7 +38,7 @@ set(GUILE_DEPENDS
   scm-scm
   scm-test-core
   scm-tax-us
-  scm-report-system
+  scm-report
   scm-gnome-utils
   )
 
diff --git a/gnucash/report/locale-specific/us/gncmod-locale-reports-us.c b/gnucash/report/locale-specific/us/gncmod-locale-reports-us.c
index 41cc49bd2..c9cb7f97f 100644
--- a/gnucash/report/locale-specific/us/gncmod-locale-reports-us.c
+++ b/gnucash/report/locale-specific/us/gncmod-locale-reports-us.c
@@ -98,7 +98,7 @@ libgncmod_locale_reports_us_gnc_module_init(int refcount)
     }
 
     /* load the report system */
-    if (!gnc_module_load("gnucash/report/report-system", 0))
+    if (!gnc_module_load("gnucash/report", 0))
     {
         return FALSE;
     }
diff --git a/gnucash/report/locale-specific/us/taxtxf-de_DE.scm b/gnucash/report/locale-specific/us/taxtxf-de_DE.scm
index 207f7cb37..7b5759fe5 100644
--- a/gnucash/report/locale-specific/us/taxtxf-de_DE.scm
+++ b/gnucash/report/locale-specific/us/taxtxf-de_DE.scm
@@ -74,7 +74,7 @@
 
 (use-modules (gnucash gnc-module))
 (gnc:module-load "gnucash/tax/de_DE" 0)
-(gnc:module-load "gnucash/report/report-system" 0)
+(gnc:module-load "gnucash/report" 0)
 (gnc:module-load "gnucash/engine" 0)
 
 (define reportname (N_ "Tax Report / TXF Export"))
@@ -119,7 +119,7 @@
            (<= t end-date)))))
 
 ;; This is nearly identical to, and could be shared with
-;; display-report-list-item in report.scm. This adds warn-msg parameter
+;; display-report-list-item in report-impl.scm. This adds warn-msg parameter
 (define (gnc:display-report-list-item item port warn-msg)
   (cond
    ((string? item) (display item port))
diff --git a/gnucash/report/locale-specific/us/taxtxf.scm b/gnucash/report/locale-specific/us/taxtxf.scm
index d34d7afae..d81998d8a 100644
--- a/gnucash/report/locale-specific/us/taxtxf.scm
+++ b/gnucash/report/locale-specific/us/taxtxf.scm
@@ -113,7 +113,7 @@
 
 (gnc:module-load "gnucash/html" 0)
 (gnc:module-load "gnucash/tax/us" 0)
-(gnc:module-load "gnucash/report/report-system" 0)
+(gnc:module-load "gnucash/report" 0)
 
 (define reportname (N_ "Tax Schedule Report/TXF Export"))
 
@@ -151,7 +151,7 @@
            (<= t64 end-date-t64)))))
 
 ;; This is nearly identical to, and could be shared with
-;; display-report-list-item in report.scm. This adds warn-msg parameter
+;; display-report-list-item in report-impl.scm. This adds warn-msg parameter
 (define (gnc:display-report-list-item item port warn-msg)
   (cond
    ((string? item) (display item port))
diff --git a/gnucash/report/report-system/options-utilities.scm b/gnucash/report/options-utilities.scm
similarity index 100%
rename from gnucash/report/report-system/options-utilities.scm
rename to gnucash/report/options-utilities.scm
diff --git a/gnucash/report/report-system/report.scm b/gnucash/report/report-core.scm
similarity index 99%
rename from gnucash/report/report-system/report.scm
rename to gnucash/report/report-core.scm
index b9cba0705..99e6eb2d0 100644
--- a/gnucash/report/report-system/report.scm
+++ b/gnucash/report/report-core.scm
@@ -1,5 +1,5 @@
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;; report.scm : structures/utilities for representing reports 
+;; report-impl.scm : structures/utilities for representing reports
 ;; Copyright 2000 Bill Gribble <grib at gnumatic.com>
 ;;
 ;; This program is free software; you can redistribute it and/or    
@@ -24,8 +24,8 @@
 (use-modules (gnucash app-utils))
 (use-modules (gnucash gettext))
 (eval-when (compile load eval expand)
-  (load-extension "libgncmod-report-system" "scm_init_sw_report_system_module"))
-(use-modules (sw_report_system))
+  (load-extension "libgncmod-report" "scm_init_sw_report_module"))
+(use-modules (sw_report))
 
 ;; Terminology in this file:
 ;; report-template: a report definition of some form. This can be a report
@@ -94,11 +94,11 @@
 (define (gui-error str)
   (if (gnucash-ui-is-running)
       (gnc-error-dialog '() str)
-      (gnc:error "report.scm error: " str)))
+      (gnc:error "report-impl.scm error: " str)))
 (define (gui-warning str)
   (if (gnucash-ui-is-running)
       (gnc-warning-dialog '() str)
-      (gnc:warn "report.scm warning: " str)))
+      (gnc:warn "report-impl.scm warning: " str)))
 (define (gui-error-missing-template template-name)
   (gui-error
    (string-append
diff --git a/gnucash/report/report-system/report-register-hooks.scm b/gnucash/report/report-register-hooks.scm
similarity index 100%
rename from gnucash/report/report-system/report-register-hooks.scm
rename to gnucash/report/report-register-hooks.scm
diff --git a/gnucash/report/report-system/CMakeLists.txt b/gnucash/report/report-system/CMakeLists.txt
deleted file mode 100644
index 293e1926a..000000000
--- a/gnucash/report/report-system/CMakeLists.txt
+++ /dev/null
@@ -1,107 +0,0 @@
-add_subdirectory(test)
-
-set (report_system_HEADERS
-  gnc-report.h
-)
-
-# Command to generate the swig-report-system.c wrapper file
-gnc_add_swig_guile_command (swig-report-system-c
-    SWIG_REPORT_SYSTEM_C swig-report-system.c
-    ${CMAKE_CURRENT_SOURCE_DIR}/report-system.i ${report_system_HEADERS}
-)
-
-set (report_system_SOURCES
-  gncmod-report-system.c
-  gnc-report.c
-)  
-
-add_library (gncmod-report-system
-  ${report_system_SOURCES}
-  ${report_system_HEADERS}
-  ${SWIG_REPORT_SYSTEM_C}
-)
-
-target_compile_definitions(gncmod-report-system PRIVATE -DG_LOG_DOMAIN=\"gnc.report.core\")
-
-target_link_libraries(gncmod-report-system gnc-module gncmod-app-utils ${GTK3_LDFLAGS} ${GUILE_LDFLAGS})
-
-target_include_directories (gncmod-report-system
-    PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} PRIVATE ${GTK3_INCLUDE_DIRS}
-)
-
-
-if (APPLE)
-  set_target_properties (gncmod-report-system PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/gnucash")
-endif()
-
-install(TARGETS gncmod-report-system
-  LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash
-  ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash
-  RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
-
-install(FILES ${report_system_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gnucash)
-
-# Scheme
-
-set (report_system_SCHEME
-    report-system.scm
-    eguile-gnc.scm
-    eguile-utilities.scm
-    eguile-html-utilities.scm
-)
-
-set (report_system_SCHEME_2
-    commodity-utilities.scm
-    html-acct-table.scm
-    html-chart.scm
-    html-barchart.scm
-    html-document.scm
-    html-fonts.scm
-    html-piechart.scm
-    html-scatter.scm
-    html-linechart.scm
-    html-style-info.scm
-    html-style-sheet.scm
-    html-anytag.scm
-    html-table.scm
-    html-text.scm
-    html-utilities.scm
-    options-utilities.scm
-    report-utilities.scm
-    report-register-hooks.scm
-    report.scm
-    trep-engine.scm
-)
-
-set(GUILE_DEPENDS
-  gncmod-html
-  scm-gnome-utils
-  gncmod-report-system
-  scm-app-utils
-  scm-scm
-  scm-gnc-module
-  )
-
-gnc_add_scheme_targets(scm-report-system-1
-  "${report_system_SCHEME}"
-  "gnucash/report"
-  "${GUILE_DEPENDS}"
-  FALSE
-)
-
-gnc_add_scheme_targets(scm-report-system-2
-  "${report_system_SCHEME_2}"
-  ""
-  scm-report-system-1
-  FALSE
-)
-
-add_custom_target(scm-report-system ALL DEPENDS scm-report-system-2)
-
-set_local_dist(report_system_DIST_local CMakeLists.txt
-  report-system.i
-  ${report_system_HEADERS} ${report_system_SOURCES}
-  ${report_system_SCHEME} ${report_system_SCHEME_1}
-  ${report_system_SCHEME_2})
-
-set(report_system_DIST ${report_system_DIST_local} ${test_report_system_DIST} PARENT_SCOPE)
diff --git a/gnucash/report/report-system/test/CMakeLists.txt b/gnucash/report/report-system/test/CMakeLists.txt
deleted file mode 100644
index b38527dc8..000000000
--- a/gnucash/report/report-system/test/CMakeLists.txt
+++ /dev/null
@@ -1,72 +0,0 @@
-
-set(REPORT_SYSTEM_TEST_INCLUDE_DIRS
-  ${CMAKE_SOURCE_DIR}/libgnucash/gnc-module
-  ${GUILE_INCLUDE_DIRS}
-)
-set(REPORT_SYSTEM_TEST_LIBS gnc-module)
-
-gnc_add_test_with_guile(test-link-module-report-system test-link-module.c
-  REPORT_SYSTEM_TEST_INCLUDE_DIRS REPORT_SYSTEM_TEST_LIBS
-)
-
-set(scm_test_report_system_SOURCES
-  test-load-report-system-module.scm
-  test-test-extras.scm
-)
-
-set (scm_test_report_system_with_srfi64_SOURCES
-  test-commodity-utils.scm
-  test-report-utilities.scm
-  test-html-utilities-srfi64.scm
-  test-html-fonts.scm
-  test-html-chart.scm
-  test-report-html.scm
-  test-report-system.scm
-  )
-
-set(GUILE_DEPENDS
-  scm-gnc-module
-  scm-app-utils
-  scm-core-utils
-  scm-gettext
-  scm-engine
-  scm-test-engine
-  scm-scm
-  scm-report-system
-  scm-test-report-system
-  )
-gnc_add_scheme_tests("${scm_test_report_system_SOURCES}")
-
-if (HAVE_SRFI64)
-  gnc_add_scheme_test_targets(scm-test-report-system-srfi64
-    "${scm_test_report_system_with_srfi64_SOURCES}"
-    "tests"
-    "${GUILE_DEPENDS};scm-srfi64-extras"
-    FALSE
-    )
-
-  gnc_add_scheme_tests ("${scm_test_report_system_with_srfi64_SOURCES}")
-endif (HAVE_SRFI64)
-
-gnc_add_scheme_test_targets(scm-test-report-system
-  "test-report-system-extras.scm"
-  "tests"
-  "${GUILE_DEPENDS}"
-  FALSE
-  )
-
-gnc_add_scheme_test_targets(scm-test-report-system-2
-  "${scm_test_report_system_SOURCES}"
-  "tests"
-  "scm-test-report-system"
-  FALSE
-)
-
-add_dependencies(check scm-test-report-system)
-set_dist_list(test_report_system_DIST
-  CMakeLists.txt
-  ${scm_test_report_system_with_srfi64_SOURCES}
-  ${scm_test_report_system_SOURCES}
-  test-report-system-extras.scm
-  test-link-module.c
-)
diff --git a/gnucash/report/report-system/report-utilities.scm b/gnucash/report/report-utilities.scm
similarity index 100%
rename from gnucash/report/report-system/report-utilities.scm
rename to gnucash/report/report-utilities.scm
diff --git a/gnucash/report/report-system/report-system.i b/gnucash/report/report.i
similarity index 95%
rename from gnucash/report/report-system/report-system.i
rename to gnucash/report/report.i
index 3034de0de..e11655a3c 100644
--- a/gnucash/report/report-system/report-system.i
+++ b/gnucash/report/report.i
@@ -18,7 +18,7 @@
  *                                                                  *
 \********************************************************************/
 
-%module sw_report_system
+%module sw_report
 %{
 /* Includes the header in the wrapper code */
 #include <config.h>
@@ -28,7 +28,7 @@
 %{
 #include "guile-mappings.h"
 
-SCM scm_init_sw_report_system_module (void);
+SCM scm_init_sw_report_module (void);
 %}
 #endif
 
@@ -41,4 +41,4 @@ gint gnc_report_add(SCM report);
 gchar* gnc_get_default_report_font_family();
 
 void gnc_saved_reports_backup (void);
-gboolean gnc_saved_reports_write_to_file (const gchar* report_def, gboolean overwrite);
\ No newline at end of file
+gboolean gnc_saved_reports_write_to_file (const gchar* report_def, gboolean overwrite);
diff --git a/gnucash/report/report-system/report-system.scm b/gnucash/report/report.scm
similarity index 96%
rename from gnucash/report/report-system/report-system.scm
rename to gnucash/report/report.scm
index ee122b434..454006c09 100644
--- a/gnucash/report/report-system/report-system.scm
+++ b/gnucash/report/report.scm
@@ -1,5 +1,5 @@
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;;  report-system.scm
+;;  report.scm
 ;;  module definition for the report system code
 ;;
 ;;  Copyright (c) 2001 Linux Developers Group, Inc.
@@ -24,7 +24,7 @@
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 
-(define-module (gnucash report report-system))
+(define-module (gnucash report report))
 (use-modules (gnucash utilities)) 
 (use-modules (ice-9 regex))
 (use-modules (srfi srfi-1))
@@ -122,7 +122,7 @@
 (export gnc:html-css-include)
 (export gnc:html-string-sanitize)
 
-;; report.scm
+;; report-core.scm
 (export gnc:menuname-reports)
 (export gnc:menuname-asset-liability)
 (export gnc:menuname-income-expense)
@@ -758,27 +758,27 @@
 (export gnc:lookup-register-report)
 
 
-(load-from-path "commodity-utilities")
-(load-from-path "html-chart")
-(load-from-path "html-barchart")
-(load-from-path "html-document")
-(load-from-path "html-piechart")
-(load-from-path "html-scatter")
-(load-from-path "html-linechart")
-(load-from-path "html-style-info")
-(load-from-path "html-fonts")
-
-(load-from-path "html-style-sheet")
-(load-from-path "html-anytag")
-(load-from-path "html-table")
-(load-from-path "html-text")
-(load-from-path "html-acct-table")
-(load-from-path "html-utilities")
-(load-from-path "options-utilities")
-(load-from-path "report-utilities")
-(load-from-path "report-register-hooks")
-(load-from-path "report")
-(load-from-path "trep-engine")
+(load-from-path "gnucash/report/commodity-utilities")
+(load-from-path "gnucash/report/html-chart")
+(load-from-path "gnucash/report/html-barchart")
+(load-from-path "gnucash/report/html-document")
+(load-from-path "gnucash/report/html-piechart")
+(load-from-path "gnucash/report/html-scatter")
+(load-from-path "gnucash/report/html-linechart")
+(load-from-path "gnucash/report/html-style-info")
+(load-from-path "gnucash/report/html-fonts")
+
+(load-from-path "gnucash/report/html-style-sheet")
+(load-from-path "gnucash/report/html-anytag")
+(load-from-path "gnucash/report/html-table")
+(load-from-path "gnucash/report/html-text")
+(load-from-path "gnucash/report/html-acct-table")
+(load-from-path "gnucash/report/html-utilities")
+(load-from-path "gnucash/report/options-utilities")
+(load-from-path "gnucash/report/report-utilities")
+(load-from-path "gnucash/report/report-register-hooks")
+(load-from-path "gnucash/report/report-core")
+(load-from-path "gnucash/report/trep-engine")
 
 ;; Report uuids used for the category barcharts
 
diff --git a/gnucash/report/reports/CMakeLists.txt b/gnucash/report/reports/CMakeLists.txt
index d7e81eb50..3d540cbe0 100644
--- a/gnucash/report/reports/CMakeLists.txt
+++ b/gnucash/report/reports/CMakeLists.txt
@@ -67,7 +67,7 @@ set(scm_rpts_GUILE_DEPENDS
   scm-gettext
   scm-scm
   scm-gnome-utils
-  scm-report-system
+  scm-report
   )
 
 set(scm_rpt_example_GUILE_DEPENDS
@@ -79,7 +79,7 @@ set(scm_rpt_example_GUILE_DEPENDS
   scm-scm
   scm-reports-example-links
   scm-gnome-utils
-  scm-report-system
+  scm-report
   )
 
 set(scm_rpt_std_GUILE_DEPENDS
diff --git a/gnucash/report/reports/aging.scm b/gnucash/report/reports/aging.scm
index fda00b905..f73dc1be2 100644
--- a/gnucash/report/reports/aging.scm
+++ b/gnucash/report/reports/aging.scm
@@ -30,7 +30,7 @@
 (use-modules (gnucash gnc-module))
 (use-modules (gnucash gettext))
 
-(gnc:module-load "gnucash/report/report-system" 0)
+(gnc:module-load "gnucash/report" 0)
 
 (use-modules (gnucash report reports))
 
diff --git a/gnucash/report/reports/example/average-balance.scm b/gnucash/report/reports/example/average-balance.scm
index 70472e12b..0ea2cb360 100644
--- a/gnucash/report/reports/example/average-balance.scm
+++ b/gnucash/report/reports/example/average-balance.scm
@@ -31,7 +31,7 @@
 (use-modules (gnucash utilities))
 (use-modules (gnucash gnc-module))
 (use-modules (gnucash gettext))
-(gnc:module-load "gnucash/report/report-system" 0)
+(gnc:module-load "gnucash/report" 0)
 
 (define reportname (N_ "Average Balance"))
 
diff --git a/gnucash/report/reports/example/daily-reports.scm b/gnucash/report/reports/example/daily-reports.scm
index c15d3a84f..18b90a09b 100644
--- a/gnucash/report/reports/example/daily-reports.scm
+++ b/gnucash/report/reports/example/daily-reports.scm
@@ -32,7 +32,7 @@
 (use-modules (gnucash gnc-module))
 (use-modules (gnucash gettext))
 
-(gnc:module-load "gnucash/report/report-system" 0)
+(gnc:module-load "gnucash/report" 0)
 
 (define menuname-income (N_ "Income vs. Day of Week"))
 (define menuname-expense (N_ "Expenses vs. Day of Week"))
diff --git a/gnucash/report/reports/example/hello-world.scm b/gnucash/report/reports/example/hello-world.scm
index aec8fcdf4..f5fa1b2dc 100644
--- a/gnucash/report/reports/example/hello-world.scm
+++ b/gnucash/report/reports/example/hello-world.scm
@@ -30,7 +30,7 @@
 
 (debug-enable 'backtrace)
 
-(gnc:module-load "gnucash/report/report-system" 0)
+(gnc:module-load "gnucash/report" 0)
 (gnc:module-load "gnucash/html" 0) ;for gnc-build-url
 
 ;; This function will generate a set of options that GnuCash
diff --git a/gnucash/report/reports/example/sample-graphs.scm b/gnucash/report/reports/example/sample-graphs.scm
index 357af0bf6..aea7df59f 100644
--- a/gnucash/report/reports/example/sample-graphs.scm
+++ b/gnucash/report/reports/example/sample-graphs.scm
@@ -32,7 +32,7 @@
 ;; Use (_ string) to use a translation of this string if it exists.
 (use-modules (gnucash gettext))
 
-(gnc:module-load "gnucash/report/report-system" 0)
+(gnc:module-load "gnucash/report" 0)
 (gnc:module-load "gnucash/gnome-utils" 0) ;for gnc-build-url
 
 ;; It's common to define frequently used strings once
diff --git a/gnucash/report/reports/example/welcome-to-gnucash.scm b/gnucash/report/reports/example/welcome-to-gnucash.scm
index 56ce38911..51790d755 100644
--- a/gnucash/report/reports/example/welcome-to-gnucash.scm
+++ b/gnucash/report/reports/example/welcome-to-gnucash.scm
@@ -29,10 +29,10 @@
 (use-modules (gnucash gnc-module))
 (eval-when
       (compile load eval expand)
-      (load-extension "libgncmod-report-system" "scm_init_sw_report_system_module"))
-(use-modules (sw_report_system))
+      (load-extension "libgncmod-report" "scm_init_sw_report_module"))
+(use-modules (sw_report))
 
-(gnc:module-load "gnucash/report/report-system" 0)
+(gnc:module-load "gnucash/report" 0)
 
 (define (options)
   (gnc:new-options))
diff --git a/gnucash/report/reports/reports.scm b/gnucash/report/reports/reports.scm
index a96cbc5ec..6ba1a7f4a 100644
--- a/gnucash/report/reports/reports.scm
+++ b/gnucash/report/reports/reports.scm
@@ -28,7 +28,7 @@
 (use-modules (srfi srfi-13))
 (use-modules (gnucash app-utils))
 (use-modules (gnucash core-utils))
-(use-modules (gnucash report report-system))
+(use-modules (gnucash report report))
 (use-modules (gnucash utilities))
 
 (export gnc:register-report-create)
diff --git a/gnucash/report/reports/standard/account-piecharts.scm b/gnucash/report/reports/standard/account-piecharts.scm
index 4a2a36286..aeba46ca0 100644
--- a/gnucash/report/reports/standard/account-piecharts.scm
+++ b/gnucash/report/reports/standard/account-piecharts.scm
@@ -30,7 +30,7 @@
 (use-modules (gnucash gnc-module))
 (use-modules (gnucash gettext))
 
-(gnc:module-load "gnucash/report/report-system" 0)
+(gnc:module-load "gnucash/report" 0)
 
 (define menuname-income (N_ "Income Piechart"))
 (define menuname-expense (N_ "Expense Piechart"))
diff --git a/gnucash/report/reports/standard/account-summary.scm b/gnucash/report/reports/standard/account-summary.scm
index 86ddb838d..f26dd3fad 100644
--- a/gnucash/report/reports/standard/account-summary.scm
+++ b/gnucash/report/reports/standard/account-summary.scm
@@ -55,7 +55,7 @@
 (use-modules (gnucash gnc-module))
 (use-modules (gnucash gettext))
 
-(gnc:module-load "gnucash/report/report-system" 0)
+(gnc:module-load "gnucash/report" 0)
 
 ;; account summary report prints a table of account information,
 ;; optionally with clickable links to open the corresponding register
diff --git a/gnucash/report/reports/standard/advanced-portfolio.scm b/gnucash/report/reports/standard/advanced-portfolio.scm
index 8befe36a6..9b4b37248 100644
--- a/gnucash/report/reports/standard/advanced-portfolio.scm
+++ b/gnucash/report/reports/standard/advanced-portfolio.scm
@@ -32,7 +32,7 @@
 (use-modules (gnucash gnc-module))
 (use-modules (gnucash gettext))
 
-(gnc:module-load "gnucash/report/report-system" 0)
+(gnc:module-load "gnucash/report" 0)
 
 (define reportname (N_ "Advanced Portfolio"))
 
diff --git a/gnucash/report/reports/standard/balance-forecast.scm b/gnucash/report/reports/standard/balance-forecast.scm
index 4c46cf8bc..634524def 100644
--- a/gnucash/report/reports/standard/balance-forecast.scm
+++ b/gnucash/report/reports/standard/balance-forecast.scm
@@ -29,7 +29,7 @@
 (use-modules (gnucash gettext))
 (use-modules (srfi srfi-1))
 
-(gnc:module-load "gnucash/report/report-system" 0)
+(gnc:module-load "gnucash/report" 0)
 
 ; Name definitions
 (define reportname           (N_ "Balance Forecast"))
diff --git a/gnucash/report/reports/standard/balance-sheet.scm b/gnucash/report/reports/standard/balance-sheet.scm
index 9ff740b42..9e4708150 100644
--- a/gnucash/report/reports/standard/balance-sheet.scm
+++ b/gnucash/report/reports/standard/balance-sheet.scm
@@ -67,7 +67,7 @@
 (use-modules (gnucash gnc-module))
 (use-modules (gnucash gettext))
 
-(gnc:module-load "gnucash/report/report-system" 0)
+(gnc:module-load "gnucash/report" 0)
 
 (define reportname (N_ "Balance Sheet"))
 
diff --git a/gnucash/report/reports/standard/balsheet-eg.scm b/gnucash/report/reports/standard/balsheet-eg.scm
index eac6509dd..37e7f5b48 100644
--- a/gnucash/report/reports/standard/balsheet-eg.scm
+++ b/gnucash/report/reports/standard/balsheet-eg.scm
@@ -42,7 +42,7 @@
 (use-modules (ice-9 local-eval))  ; for the-environment
 (use-modules (srfi srfi-13)) ; for extra string functions
 
-(gnc:module-load "gnucash/report/report-system" 0)
+(gnc:module-load "gnucash/report" 0)
 (gnc:module-load "gnucash/html" 0)
 
 (define debugging? #f)
diff --git a/gnucash/report/reports/standard/balsheet-pnl.scm b/gnucash/report/reports/standard/balsheet-pnl.scm
index c6d5ab378..64514b038 100644
--- a/gnucash/report/reports/standard/balsheet-pnl.scm
+++ b/gnucash/report/reports/standard/balsheet-pnl.scm
@@ -31,7 +31,7 @@
 (use-modules (gnucash gettext))
 (use-modules (srfi srfi-1))
 
-(gnc:module-load "gnucash/report/report-system" 0)
+(gnc:module-load "gnucash/report" 0)
 
 (define FOOTER-TEXT
   (gnc:make-html-text
diff --git a/gnucash/report/reports/standard/budget-balance-sheet.scm b/gnucash/report/reports/standard/budget-balance-sheet.scm
index 67c363252..5aa05ecf6 100644
--- a/gnucash/report/reports/standard/budget-balance-sheet.scm
+++ b/gnucash/report/reports/standard/budget-balance-sheet.scm
@@ -33,7 +33,7 @@
 (use-modules (gnucash gnc-module))
 (use-modules (gnucash gettext))
 
-(gnc:module-load "gnucash/report/report-system" 0)
+(gnc:module-load "gnucash/report" 0)
 
 (define reportname (N_ "Budget Balance Sheet"))
 
diff --git a/gnucash/report/reports/standard/budget-barchart.scm b/gnucash/report/reports/standard/budget-barchart.scm
index a1b6a4b04..0eb1d2c3c 100644
--- a/gnucash/report/reports/standard/budget-barchart.scm
+++ b/gnucash/report/reports/standard/budget-barchart.scm
@@ -31,7 +31,7 @@
 (use-modules (gnucash gnc-module))
 (use-modules (gnucash gettext))
 
-(gnc:module-load "gnucash/report/report-system" 0)
+(gnc:module-load "gnucash/report" 0)
 
 (define reportname
   (N_ "Budget Chart"))
diff --git a/gnucash/report/reports/standard/budget-flow.scm b/gnucash/report/reports/standard/budget-flow.scm
index 3aa7d0315..1dd4e3ded 100644
--- a/gnucash/report/reports/standard/budget-flow.scm
+++ b/gnucash/report/reports/standard/budget-flow.scm
@@ -30,7 +30,7 @@
 (use-modules (gnucash gnc-module))
 (use-modules (gnucash gettext))
 
-(gnc:module-load "gnucash/report/report-system" 0)
+(gnc:module-load "gnucash/report" 0)
 (gnc:module-load "gnucash/gnome-utils" 0) ;for gnc-build-url
 
 (define reportname
diff --git a/gnucash/report/reports/standard/budget-income-statement.scm b/gnucash/report/reports/standard/budget-income-statement.scm
index 015325536..01f00c186 100644
--- a/gnucash/report/reports/standard/budget-income-statement.scm
+++ b/gnucash/report/reports/standard/budget-income-statement.scm
@@ -45,7 +45,7 @@
 (use-modules (gnucash gnc-module))
 (use-modules (gnucash gettext))
 
-(gnc:module-load "gnucash/report/report-system" 0)
+(gnc:module-load "gnucash/report" 0)
 
 ;; define all option's names and help text so that they are properly
 ;; defined in *one* place.
diff --git a/gnucash/report/reports/standard/budget.scm b/gnucash/report/reports/standard/budget.scm
index eff00398b..495b7ae2a 100644
--- a/gnucash/report/reports/standard/budget.scm
+++ b/gnucash/report/reports/standard/budget.scm
@@ -35,7 +35,7 @@
 
 (use-modules (srfi srfi-1))
 
-(gnc:module-load "gnucash/report/report-system" 0)
+(gnc:module-load "gnucash/report" 0)
 (gnc:module-load "gnucash/gnome-utils" 0) ;for gnc-build-url
 
 (define reportname (N_ "Budget Report"))
diff --git a/gnucash/report/reports/standard/cash-flow.scm b/gnucash/report/reports/standard/cash-flow.scm
index 229da7d44..fc13aa83d 100644
--- a/gnucash/report/reports/standard/cash-flow.scm
+++ b/gnucash/report/reports/standard/cash-flow.scm
@@ -33,7 +33,7 @@
 (use-modules (gnucash gettext))
 (use-modules (gnucash engine))
 
-(gnc:module-load "gnucash/report/report-system" 0)
+(gnc:module-load "gnucash/report" 0)
 (gnc:module-load "gnucash/gnome-utils" 0) ;for gnc-build-url
 
 (export cash-flow-calc-money-in-out)
diff --git a/gnucash/report/reports/standard/cashflow-barchart.scm b/gnucash/report/reports/standard/cashflow-barchart.scm
index bf401e974..dfe1531af 100644
--- a/gnucash/report/reports/standard/cashflow-barchart.scm
+++ b/gnucash/report/reports/standard/cashflow-barchart.scm
@@ -35,7 +35,7 @@
 (use-modules (gnucash engine))
 (use-modules (gnucash report reports standard cash-flow))
 
-(gnc:module-load "gnucash/report/report-system" 0)
+(gnc:module-load "gnucash/report" 0)
 
 (define reportname (N_ "Cash Flow Barchart"))
 
diff --git a/gnucash/report/reports/standard/category-barchart.scm b/gnucash/report/reports/standard/category-barchart.scm
index 7ebf3143e..f7fe644c5 100644
--- a/gnucash/report/reports/standard/category-barchart.scm
+++ b/gnucash/report/reports/standard/category-barchart.scm
@@ -29,7 +29,7 @@
 (use-modules (gnucash gnc-module))
 (use-modules (gnucash gettext))
 
-(gnc:module-load "gnucash/report/report-system" 0)
+(gnc:module-load "gnucash/report" 0)
 
 ;; The option names are defined here to 1. save typing and 2. avoid
 ;; spelling errors. The *reportnames* are defined here (and not only
diff --git a/gnucash/report/reports/standard/customer-summary.scm b/gnucash/report/reports/standard/customer-summary.scm
index 64a983909..e7f4ee8be 100644
--- a/gnucash/report/reports/standard/customer-summary.scm
+++ b/gnucash/report/reports/standard/customer-summary.scm
@@ -33,7 +33,7 @@
 (use-modules (gnucash utilities))                ; for gnc:debug
 (use-modules (gnucash gettext))
 
-(gnc:module-load "gnucash/report/report-system" 0)
+(gnc:module-load "gnucash/report" 0)
 (use-modules (gnucash report reports))
 
 ;; Option names
diff --git a/gnucash/report/reports/standard/dashboard.scm b/gnucash/report/reports/standard/dashboard.scm
index 6d9b4ba31..e34f38ca7 100644
--- a/gnucash/report/reports/standard/dashboard.scm
+++ b/gnucash/report/reports/standard/dashboard.scm
@@ -31,10 +31,10 @@
 (use-modules (gnucash gnc-module))
 (eval-when
       (compile load eval expand)
-      (load-extension "libgncmod-report-system" "scm_init_sw_report_system_module"))
-(use-modules (sw_report_system))
+      (load-extension "libgncmod-report" "scm_init_sw_report_module"))
+(use-modules (sw_report))
 
-(gnc:module-load "gnucash/report/report-system" 0)
+(gnc:module-load "gnucash/report" 0)
 
 (define multicolumn-guid "d8ba4a2e89e8479ca9f6eccdeb164588")
 (define acct-summary-guid "3298541c236b494998b236dfad6ad752")
diff --git a/gnucash/report/reports/standard/equity-statement.scm b/gnucash/report/reports/standard/equity-statement.scm
index 07d66879a..47e1d622f 100644
--- a/gnucash/report/reports/standard/equity-statement.scm
+++ b/gnucash/report/reports/standard/equity-statement.scm
@@ -50,7 +50,7 @@
 (use-modules (gnucash gnc-module))
 (use-modules (gnucash gettext))
 
-(gnc:module-load "gnucash/report/report-system" 0)
+(gnc:module-load "gnucash/report" 0)
 
 (define reportname (N_ "Equity Statement"))
 
diff --git a/gnucash/report/reports/standard/general-journal.scm b/gnucash/report/reports/standard/general-journal.scm
index bf5deb891..e7efd5d73 100644
--- a/gnucash/report/reports/standard/general-journal.scm
+++ b/gnucash/report/reports/standard/general-journal.scm
@@ -32,7 +32,7 @@
 (use-modules (gnucash gnc-module))
 (use-modules (gnucash gettext))
 
-(gnc:module-load "gnucash/report/report-system" 0)
+(gnc:module-load "gnucash/report" 0)
 
 (define reportname (N_ "General Journal"))
 (define regrptname (N_ "Register"))
diff --git a/gnucash/report/reports/standard/general-ledger.scm b/gnucash/report/reports/standard/general-ledger.scm
index 493da07f1..ec79f9e07 100644
--- a/gnucash/report/reports/standard/general-ledger.scm
+++ b/gnucash/report/reports/standard/general-ledger.scm
@@ -35,7 +35,7 @@
 (use-modules (gnucash gnc-module))
 (use-modules (gnucash gettext))
 
-(gnc:module-load "gnucash/report/report-system" 0)
+(gnc:module-load "gnucash/report" 0)
 
 (define reportname (N_ "General Ledger"))
 (define xactrptguid "2fe3b9833af044abb929a88d5a59620f")
diff --git a/gnucash/report/reports/standard/income-gst-statement.scm b/gnucash/report/reports/standard/income-gst-statement.scm
index 281b8d62f..75d9b96ae 100644
--- a/gnucash/report/reports/standard/income-gst-statement.scm
+++ b/gnucash/report/reports/standard/income-gst-statement.scm
@@ -31,7 +31,7 @@
 (use-modules (srfi srfi-1))
 (use-modules (gnucash gnc-module))
 (use-modules (gnucash gettext))
-(gnc:module-load "gnucash/report/report-system" 0)
+(gnc:module-load "gnucash/report" 0)
 
 ;; Define the strings here to avoid typos and make changes easier.
 (define reportname (N_ "Income and GST Statement"))
diff --git a/gnucash/report/reports/standard/income-statement.scm b/gnucash/report/reports/standard/income-statement.scm
index 8252eef92..704bab8fc 100644
--- a/gnucash/report/reports/standard/income-statement.scm
+++ b/gnucash/report/reports/standard/income-statement.scm
@@ -46,7 +46,7 @@
 (use-modules (gnucash gnc-module))
 (use-modules (gnucash gettext))
 
-(gnc:module-load "gnucash/report/report-system" 0)
+(gnc:module-load "gnucash/report" 0)
 
 ;; define all option's names and help text so that they are properly
 ;; defined in *one* place.
diff --git a/gnucash/report/reports/standard/invoice.scm b/gnucash/report/reports/standard/invoice.scm
index 72d9738fa..78f7ef0b7 100644
--- a/gnucash/report/reports/standard/invoice.scm
+++ b/gnucash/report/reports/standard/invoice.scm
@@ -29,7 +29,7 @@
 (use-modules (gnucash gettext))
 (use-modules (gnucash utilities))
 
-(gnc:module-load "gnucash/report/report-system" 0)
+(gnc:module-load "gnucash/report" 0)
 (use-modules (gnucash report reports))
 
 (define (addif pred . data) (if pred data '()))
diff --git a/gnucash/report/reports/standard/job-report.scm b/gnucash/report/reports/standard/job-report.scm
index ef8716884..15211fb02 100644
--- a/gnucash/report/reports/standard/job-report.scm
+++ b/gnucash/report/reports/standard/job-report.scm
@@ -31,7 +31,7 @@
 (use-modules (gnucash utilities))		; for gnc:debug
 (use-modules (gnucash gettext))
 
-(gnc:module-load "gnucash/report/report-system" 0)
+(gnc:module-load "gnucash/report" 0)
 (use-modules (gnucash report reports))
 
 (define acct-string (N_ "Account"))
diff --git a/gnucash/report/reports/standard/net-charts.scm b/gnucash/report/reports/standard/net-charts.scm
index 0d58a2bd4..a57f7a340 100644
--- a/gnucash/report/reports/standard/net-charts.scm
+++ b/gnucash/report/reports/standard/net-charts.scm
@@ -33,7 +33,7 @@
 (use-modules (gnucash gnc-module))
 (use-modules (gnucash gettext))
 
-(gnc:module-load "gnucash/report/report-system" 0)
+(gnc:module-load "gnucash/report" 0)
 
 
 (define optname-from-date (N_ "Start Date"))
diff --git a/gnucash/report/reports/standard/owner-report.scm b/gnucash/report/reports/standard/owner-report.scm
index a1f628887..1abfb72e6 100644
--- a/gnucash/report/reports/standard/owner-report.scm
+++ b/gnucash/report/reports/standard/owner-report.scm
@@ -32,7 +32,7 @@
 (use-modules (gnucash utilities))        ; for gnc:debug
 (use-modules (gnucash gettext))
 
-(gnc:module-load "gnucash/report/report-system" 0)
+(gnc:module-load "gnucash/report" 0)
 (use-modules (gnucash report reports))
 
 ;; Option names
diff --git a/gnucash/report/reports/standard/payables.scm b/gnucash/report/reports/standard/payables.scm
index 3be38e121..2bc7e00d2 100644
--- a/gnucash/report/reports/standard/payables.scm
+++ b/gnucash/report/reports/standard/payables.scm
@@ -29,7 +29,7 @@
 (use-modules (gnucash gnc-module))
 (use-modules (gnucash gettext))
 
-(gnc:module-load "gnucash/report/report-system" 0)
+(gnc:module-load "gnucash/report" 0)
 
 (use-modules (gnucash report reports aging))
 (use-modules (gnucash report reports))
diff --git a/gnucash/report/reports/standard/portfolio.scm b/gnucash/report/reports/standard/portfolio.scm
index 01b3286f0..16e2bea21 100644
--- a/gnucash/report/reports/standard/portfolio.scm
+++ b/gnucash/report/reports/standard/portfolio.scm
@@ -28,7 +28,7 @@
 (use-modules (gnucash gnc-module))
 (use-modules (gnucash gettext))
 
-(gnc:module-load "gnucash/report/report-system" 0)
+(gnc:module-load "gnucash/report" 0)
 
 (define reportname (N_ "Investment Portfolio"))
 
diff --git a/gnucash/report/reports/standard/price-scatter.scm b/gnucash/report/reports/standard/price-scatter.scm
index f38eca568..d2a0846ae 100644
--- a/gnucash/report/reports/standard/price-scatter.scm
+++ b/gnucash/report/reports/standard/price-scatter.scm
@@ -30,7 +30,7 @@
 (use-modules (gnucash core-utils))
 (use-modules (gnucash gettext))
 
-(gnc:module-load "gnucash/report/report-system" 0)
+(gnc:module-load "gnucash/report" 0)
 
 (define optname-from-date (N_ "Start Date"))
 (define optname-to-date (N_ "End Date"))
diff --git a/gnucash/report/reports/standard/receipt.scm b/gnucash/report/reports/standard/receipt.scm
index 35a9d9789..906aa4acc 100644
--- a/gnucash/report/reports/standard/receipt.scm
+++ b/gnucash/report/reports/standard/receipt.scm
@@ -20,7 +20,7 @@
 (use-modules (gnucash utilities))
 (use-modules (gnucash gnc-module))
 (use-modules (gnucash gettext))
-(gnc:module-load "gnucash/report/report-system" 0)
+(gnc:module-load "gnucash/report" 0)
 (gnc:module-load "gnucash/html" 0)
 (gnc:module-load "gnucash/engine" 0)
 
diff --git a/gnucash/report/reports/standard/receivables.scm b/gnucash/report/reports/standard/receivables.scm
index fa57775ad..ace0a5419 100644
--- a/gnucash/report/reports/standard/receivables.scm
+++ b/gnucash/report/reports/standard/receivables.scm
@@ -29,7 +29,7 @@
 (use-modules (gnucash gnc-module))
 (use-modules (gnucash gettext))
 
-(gnc:module-load "gnucash/report/report-system" 0)
+(gnc:module-load "gnucash/report" 0)
 
 (use-modules (gnucash report reports aging))
 (use-modules (gnucash report reports))
diff --git a/gnucash/report/reports/standard/reconcile-report.scm b/gnucash/report/reports/standard/reconcile-report.scm
index 719eb33a0..c05ae58d9 100644
--- a/gnucash/report/reports/standard/reconcile-report.scm
+++ b/gnucash/report/reports/standard/reconcile-report.scm
@@ -28,7 +28,7 @@
 
 (use-modules (gnucash gettext))
 (use-modules (gnucash gnc-module))
-(gnc:module-load "gnucash/report/report-system" 0)
+(gnc:module-load "gnucash/report" 0)
 
 (define (reconcile-report-options-generator)
   (let ((options (gnc:trep-options-generator)))
diff --git a/gnucash/report/reports/standard/register.scm b/gnucash/report/reports/standard/register.scm
index 152e8e503..0b8c984c7 100644
--- a/gnucash/report/reports/standard/register.scm
+++ b/gnucash/report/reports/standard/register.scm
@@ -27,7 +27,7 @@
 (use-modules (gnucash gnc-module))
 (use-modules (gnucash gettext))
 
-(gnc:module-load "gnucash/report/report-system" 0)
+(gnc:module-load "gnucash/report" 0)
 
 (define (date-col columns-used)
   (vector-ref columns-used 0))
@@ -708,7 +708,7 @@
 
 ;; we get called from elsewhere... but this doesn't work FIX-ME, find
 ;; out how to get report-guid's exported from report into the report
-;; system at large. might have to define this at the report-system
+;; system at large. might have to define this at the report
 ;; level to get them read by other reports. Look at the aging reports
 ;; for suggestions, perhaps
 (export register-report-guid)
diff --git a/gnucash/report/reports/standard/sx-summary.scm b/gnucash/report/reports/standard/sx-summary.scm
index e1010c131..7156ed7d0 100644
--- a/gnucash/report/reports/standard/sx-summary.scm
+++ b/gnucash/report/reports/standard/sx-summary.scm
@@ -38,7 +38,7 @@
 (use-modules (gnucash gnc-module))
 (use-modules (gnucash gettext))
 
-(gnc:module-load "gnucash/report/report-system" 0)
+(gnc:module-load "gnucash/report" 0)
 
 (define reportname (N_ "Future Scheduled Transactions Summary"))
 
diff --git a/gnucash/report/reports/standard/taxinvoice.scm b/gnucash/report/reports/standard/taxinvoice.scm
index 0b61ed994..cab5900b9 100644
--- a/gnucash/report/reports/standard/taxinvoice.scm
+++ b/gnucash/report/reports/standard/taxinvoice.scm
@@ -28,7 +28,7 @@
 (use-modules (gnucash utilities))
 (use-modules (gnucash gnc-module))
 (use-modules (gnucash gettext))
-(gnc:module-load "gnucash/report/report-system" 0)
+(gnc:module-load "gnucash/report" 0)
 (gnc:module-load "gnucash/html" 0)
 (gnc:module-load "gnucash/engine" 0)
 
diff --git a/gnucash/report/reports/standard/test/CMakeLists.txt b/gnucash/report/reports/standard/test/CMakeLists.txt
index 503771f99..330e21fad 100644
--- a/gnucash/report/reports/standard/test/CMakeLists.txt
+++ b/gnucash/report/reports/standard/test/CMakeLists.txt
@@ -28,7 +28,7 @@ set(GUILE_DEPENDS
   scm-test-engine
   scm-gettext
   scm-scm
-  scm-test-report-system
+  scm-test-report
   scm-reports
   scm-report-stylesheets
   )
diff --git a/gnucash/report/reports/standard/test/test-average-balance.scm b/gnucash/report/reports/standard/test/test-average-balance.scm
index 6e1d66014..3185c4975 100644
--- a/gnucash/report/reports/standard/test/test-average-balance.scm
+++ b/gnucash/report/reports/standard/test/test-average-balance.scm
@@ -1,11 +1,11 @@
 (use-modules (gnucash gnc-module))
 (gnc:module-begin-syntax (gnc:module-load "gnucash/app-utils" 0))
-(gnc:module-begin-syntax (gnc:module-load "gnucash/report/report-system" 0))
+(gnc:module-begin-syntax (gnc:module-load "gnucash/report" 0))
 (use-modules (tests test-engine-extras))
 (use-modules (gnucash report reports example average-balance))
-(use-modules (gnucash report report-system))
+(use-modules (gnucash report report))
 (use-modules (gnucash report reports standard budget))
-(use-modules (tests test-report-system-extras))
+(use-modules (tests test-report-extras))
 (use-modules (gnucash report stylesheets))
 (use-modules (tests srfi64-extras))
 (use-modules (srfi srfi-1))
diff --git a/gnucash/report/reports/standard/test/test-balsheet-pnl.scm b/gnucash/report/reports/standard/test/test-balsheet-pnl.scm
index bee547586..8736d6164 100644
--- a/gnucash/report/reports/standard/test/test-balsheet-pnl.scm
+++ b/gnucash/report/reports/standard/test/test-balsheet-pnl.scm
@@ -4,8 +4,8 @@
 (use-modules (gnucash report reports standard balance-sheet))
 (use-modules (gnucash report reports standard income-statement))
 (use-modules (gnucash report stylesheets))
-(use-modules (gnucash report report-system))
-(use-modules (tests test-report-system-extras))
+(use-modules (gnucash report report))
+(use-modules (tests test-report-extras))
 (use-modules (srfi srfi-64))
 (use-modules (tests srfi64-extras))
 (use-modules (sxml simple))
diff --git a/gnucash/report/reports/standard/test/test-budget.scm b/gnucash/report/reports/standard/test/test-budget.scm
index 4c91db90b..c5b4e5d7a 100644
--- a/gnucash/report/reports/standard/test/test-budget.scm
+++ b/gnucash/report/reports/standard/test/test-budget.scm
@@ -23,15 +23,15 @@
 (use-modules (gnucash gnc-module))
 (use-modules (tests srfi64-extras))
 
-(gnc:module-begin-syntax (gnc:module-load "gnucash/report/report-system" 0))
+(gnc:module-begin-syntax (gnc:module-load "gnucash/report" 0))
 
 (use-modules (gnucash utilities))
-(use-modules (gnucash report report-system))
+(use-modules (gnucash report report))
 (use-modules (gnucash app-utils))
 (use-modules (gnucash engine))
 (use-modules (sw_engine))
 (use-modules (gnucash report reports standard budget))
-(use-modules (tests test-report-system-extras))
+(use-modules (tests test-report-extras))
 (use-modules (gnucash report stylesheets))
 (use-modules (tests test-engine-extras))
 
diff --git a/gnucash/report/reports/standard/test/test-cash-flow.scm b/gnucash/report/reports/standard/test/test-cash-flow.scm
index db62bfc96..1551291ba 100644
--- a/gnucash/report/reports/standard/test/test-cash-flow.scm
+++ b/gnucash/report/reports/standard/test/test-cash-flow.scm
@@ -4,7 +4,7 @@
 
 (use-modules (tests test-engine-extras))
 (use-modules (gnucash report reports standard cash-flow))
-(use-modules (gnucash report report-system))
+(use-modules (gnucash report report))
 
 (define (run-test)
   (and (test test-one-tx-in-cash-flow)
diff --git a/gnucash/report/reports/standard/test/test-cashflow-barchart.scm b/gnucash/report/reports/standard/test/test-cashflow-barchart.scm
index 3eadcf884..e25e8d8ff 100644
--- a/gnucash/report/reports/standard/test/test-cashflow-barchart.scm
+++ b/gnucash/report/reports/standard/test/test-cashflow-barchart.scm
@@ -20,14 +20,14 @@
 (use-modules (gnucash gnc-module))
 
 (gnc:module-begin-syntax (gnc:module-load "gnucash/app-utils" 0))
-(gnc:module-load "gnucash/report/report-system" 0)
+(gnc:module-load "gnucash/report" 0)
 
 (use-modules (gnucash engine))
 (use-modules (sw_engine))
 (use-modules (tests test-engine-extras))
 (use-modules (tests srfi64-extras))
-(use-modules (gnucash report report-system))
-(use-modules (tests test-report-system-extras))
+(use-modules (gnucash report report))
+(use-modules (tests test-report-extras))
 (use-modules (gnucash report reports standard cashflow-barchart))
 (use-modules (gnucash report stylesheets))
 (use-modules (srfi srfi-1))
diff --git a/gnucash/report/reports/standard/test/test-charts.scm b/gnucash/report/reports/standard/test/test-charts.scm
index 9909979a8..e0a9e37d9 100644
--- a/gnucash/report/reports/standard/test/test-charts.scm
+++ b/gnucash/report/reports/standard/test/test-charts.scm
@@ -8,8 +8,8 @@
 (use-modules (gnucash report reports standard price-scatter))
 (use-modules (gnucash report reports example daily-reports))
 (use-modules (gnucash report stylesheets))
-(use-modules (gnucash report report-system))
-(use-modules (tests test-report-system-extras))
+(use-modules (gnucash report report))
+(use-modules (tests test-report-extras))
 (use-modules (srfi srfi-64))
 (use-modules (tests srfi64-extras))
 (use-modules (sxml simple))
diff --git a/gnucash/report/reports/standard/test/test-income-gst.scm b/gnucash/report/reports/standard/test/test-income-gst.scm
index 763451667..31ced870b 100644
--- a/gnucash/report/reports/standard/test/test-income-gst.scm
+++ b/gnucash/report/reports/standard/test/test-income-gst.scm
@@ -3,8 +3,8 @@
 (use-modules (tests test-engine-extras))
 (use-modules (gnucash report reports standard income-gst-statement))
 (use-modules (gnucash report stylesheets))
-(use-modules (gnucash report report-system))
-(use-modules (tests test-report-system-extras))
+(use-modules (gnucash report report))
+(use-modules (tests test-report-extras))
 (use-modules (srfi srfi-64))
 (use-modules (tests srfi64-extras))
 (use-modules (sxml simple))
diff --git a/gnucash/report/reports/standard/test/test-invoice.scm b/gnucash/report/reports/standard/test/test-invoice.scm
index 9e122d2fb..173ba5c3d 100644
--- a/gnucash/report/reports/standard/test/test-invoice.scm
+++ b/gnucash/report/reports/standard/test/test-invoice.scm
@@ -3,8 +3,8 @@
 (use-modules (tests test-engine-extras))
 (use-modules (gnucash report reports standard invoice))
 (use-modules (gnucash report stylesheets))
-(use-modules (gnucash report report-system))
-(use-modules (tests test-report-system-extras))
+(use-modules (gnucash report report))
+(use-modules (tests test-report-extras))
 (use-modules (srfi srfi-1))
 (use-modules (srfi srfi-64))
 (use-modules (tests srfi64-extras))
diff --git a/gnucash/report/reports/standard/test/test-register.scm b/gnucash/report/reports/standard/test/test-register.scm
index 3b9e1118f..e231283ba 100644
--- a/gnucash/report/reports/standard/test/test-register.scm
+++ b/gnucash/report/reports/standard/test/test-register.scm
@@ -28,15 +28,15 @@
 ;; causing the test to fail
 ;; That's what the wrapper below is meant for:
 
-(gnc:module-begin-syntax (gnc:module-load "gnucash/report/report-system" 0))
+(gnc:module-begin-syntax (gnc:module-load "gnucash/report" 0))
 
 (use-modules (gnucash utilities))
-(use-modules (gnucash report report-system))
+(use-modules (gnucash report report))
 (use-modules (gnucash app-utils))
 (use-modules (gnucash engine))
 (use-modules (sw_engine))
 (use-modules (gnucash report reports standard register))
-(use-modules (tests test-report-system-extras))
+(use-modules (tests test-report-extras))
 (use-modules (gnucash report stylesheets))
 (use-modules (tests test-engine-extras))
 
diff --git a/gnucash/report/reports/standard/test/test-standard-category-report.scm b/gnucash/report/reports/standard/test/test-standard-category-report.scm
index 7531436fd..ca313e806 100644
--- a/gnucash/report/reports/standard/test/test-standard-category-report.scm
+++ b/gnucash/report/reports/standard/test/test-standard-category-report.scm
@@ -28,15 +28,15 @@
 ;; causing the test to fail
 ;; That's what the wrapper below is meant for:
 
-(gnc:module-begin-syntax (gnc:module-load "gnucash/report/report-system" 0))
+(gnc:module-begin-syntax (gnc:module-load "gnucash/report" 0))
 
 (use-modules (gnucash utilities)) 
-(use-modules (gnucash report report-system))
+(use-modules (gnucash report report))
 (use-modules (gnucash app-utils))
 (use-modules (gnucash engine))
 (use-modules (sw_engine))
 (use-modules (gnucash report reports standard net-charts))
-(use-modules (tests test-report-system-extras))
+(use-modules (tests test-report-extras))
 (use-modules (gnucash report reports standard category-barchart))
 (use-modules (gnucash report stylesheets))
 (use-modules (tests test-engine-extras))
diff --git a/gnucash/report/reports/standard/test/test-standard-net-barchart.scm b/gnucash/report/reports/standard/test/test-standard-net-barchart.scm
index b1721dc82..41a9db49a 100644
--- a/gnucash/report/reports/standard/test/test-standard-net-barchart.scm
+++ b/gnucash/report/reports/standard/test/test-standard-net-barchart.scm
@@ -18,7 +18,7 @@
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 (use-modules (gnucash gnc-module))
-(gnc:module-begin-syntax (gnc:module-load "gnucash/report/report-system" 0))
+(gnc:module-begin-syntax (gnc:module-load "gnucash/report" 0))
 (use-modules (gnucash engine))
 (use-modules (sw_engine))
 (use-modules (srfi srfi-1))
@@ -26,7 +26,7 @@
 (use-modules (gnucash report stylesheets))
 (use-modules (tests test-engine-extras))
 (use-modules (tests srfi64-extras))
-(use-modules (tests test-report-system-extras))
+(use-modules (tests test-report-extras))
 (use-modules (gnucash report reports standard net-charts))
 
 ;; Explicitly set locale to make the report output predictable
diff --git a/gnucash/report/reports/standard/test/test-standard-net-linechart.scm b/gnucash/report/reports/standard/test/test-standard-net-linechart.scm
index 01f16132c..211095a4d 100644
--- a/gnucash/report/reports/standard/test/test-standard-net-linechart.scm
+++ b/gnucash/report/reports/standard/test/test-standard-net-linechart.scm
@@ -18,7 +18,7 @@
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 (use-modules (gnucash gnc-module))
-(gnc:module-begin-syntax (gnc:module-load "gnucash/report/report-system" 0))
+(gnc:module-begin-syntax (gnc:module-load "gnucash/report" 0))
 (use-modules (gnucash engine))
 (use-modules (sw_engine))
 (use-modules (srfi srfi-1))
@@ -26,7 +26,7 @@
 (use-modules (gnucash report stylesheets))
 (use-modules (tests test-engine-extras))
 (use-modules (tests srfi64-extras))
-(use-modules (tests test-report-system-extras))
+(use-modules (tests test-report-extras))
 (use-modules (gnucash report reports standard net-charts))
 
 ;; Explicitly set locale to make the report output predictable
diff --git a/gnucash/report/reports/standard/test/test-stress-options.scm b/gnucash/report/reports/standard/test/test-stress-options.scm
index 7438d38b8..7abb06211 100644
--- a/gnucash/report/reports/standard/test/test-stress-options.scm
+++ b/gnucash/report/reports/standard/test/test-stress-options.scm
@@ -8,8 +8,8 @@
 (use-modules (gnucash report reports standard view-column))
 (use-modules (gnucash report stylesheets))
 (use-modules (gnucash report reports standard taxinvoice))
-(use-modules (gnucash report report-system))
-(use-modules (tests test-report-system-extras))
+(use-modules (gnucash report report))
+(use-modules (tests test-report-extras))
 (use-modules (srfi srfi-64))
 (use-modules (srfi srfi-98))
 (use-modules (tests srfi64-extras))
diff --git a/gnucash/report/reports/standard/test/test-transaction.scm b/gnucash/report/reports/standard/test/test-transaction.scm
index 92f9d0735..867a8fb2b 100644
--- a/gnucash/report/reports/standard/test/test-transaction.scm
+++ b/gnucash/report/reports/standard/test/test-transaction.scm
@@ -4,8 +4,8 @@
 (use-modules (gnucash report reports standard transaction))
 (use-modules (gnucash report reports standard reconcile-report))
 (use-modules (gnucash report stylesheets))
-(use-modules (gnucash report report-system))
-(use-modules (tests test-report-system-extras))
+(use-modules (gnucash report report))
+(use-modules (tests test-report-extras))
 (use-modules (srfi srfi-64))
 (use-modules (tests srfi64-extras))
 (use-modules (sxml simple))
diff --git a/gnucash/report/reports/standard/transaction.scm b/gnucash/report/reports/standard/transaction.scm
index 2c4b296b0..fb0a28b56 100644
--- a/gnucash/report/reports/standard/transaction.scm
+++ b/gnucash/report/reports/standard/transaction.scm
@@ -26,7 +26,7 @@
 
 (use-modules (gnucash gnc-module))
 (use-modules (gnucash gettext))
-(gnc:module-load "gnucash/report/report-system" 0)
+(gnc:module-load "gnucash/report" 0)
 
 (gnc:define-report
  'version 1
diff --git a/gnucash/report/reports/standard/trial-balance.scm b/gnucash/report/reports/standard/trial-balance.scm
index 4c1780534..b3c880f49 100644
--- a/gnucash/report/reports/standard/trial-balance.scm
+++ b/gnucash/report/reports/standard/trial-balance.scm
@@ -55,7 +55,7 @@
 (use-modules (gnucash gnc-module))
 (use-modules (gnucash gettext))
 
-(gnc:module-load "gnucash/report/report-system" 0)
+(gnc:module-load "gnucash/report" 0)
 
 (define reportname (N_ "Trial Balance"))
 
diff --git a/gnucash/report/reports/standard/view-column.scm b/gnucash/report/reports/standard/view-column.scm
index 2f0caa217..0ffe548c6 100644
--- a/gnucash/report/reports/standard/view-column.scm
+++ b/gnucash/report/reports/standard/view-column.scm
@@ -33,10 +33,10 @@
 (use-modules (gnucash gettext))
 (eval-when
       (compile load eval expand)
-      (load-extension "libgncmod-report-system" "scm_init_sw_report_system_module"))
-(use-modules (sw_report_system))
+      (load-extension "libgncmod-report" "scm_init_sw_report_module"))
+(use-modules (sw_report))
 
-(gnc:module-load "gnucash/report/report-system" 0)
+(gnc:module-load "gnucash/report" 0)
 (gnc:module-load "gnucash/html" 0) ;for gnc-build-url
 
 (define (make-options)
diff --git a/gnucash/report/stylesheets/CMakeLists.txt b/gnucash/report/stylesheets/CMakeLists.txt
index ff86da5bb..714efe222 100644
--- a/gnucash/report/stylesheets/CMakeLists.txt
+++ b/gnucash/report/stylesheets/CMakeLists.txt
@@ -11,7 +11,7 @@ set(stylesheets_noinst_HEADERS
 
 add_library(gncmod-stylesheets MODULE ${stylesheets_SOURCES} ${stylesheets_noinst_HEADERS})
 
-target_link_libraries(gncmod-stylesheets gnc-gnome gncmod-report-system gncmod-gnome-utils gnc-module
+target_link_libraries(gncmod-stylesheets gnc-gnome gncmod-report gncmod-gnome-utils gnc-module
     ${GUILE_LDFLAGS} ${GTK3_LDFLAGS} ${GLIB2_LDFLAGS})
 
 target_compile_definitions(gncmod-stylesheets PRIVATE -DG_LOG_DOMAIN=\"gnc.report.core\")
@@ -59,7 +59,7 @@ set(GUILE_DEPENDS
   scm-gettext
   scm-scm
   gncmod-html
-  scm-report-system
+  scm-report
   )
 
 gnc_add_scheme_targets(scm-report-stylesheets-1
diff --git a/gnucash/report/stylesheets/gncmod-stylesheets.c b/gnucash/report/stylesheets/gncmod-stylesheets.c
index e6403f4cf..3758d832e 100644
--- a/gnucash/report/stylesheets/gncmod-stylesheets.c
+++ b/gnucash/report/stylesheets/gncmod-stylesheets.c
@@ -61,7 +61,7 @@ int
 libgncmod_stylesheets_gnc_module_init(int refcount)
 {
     /* load the report system */
-    if (!gnc_module_load("gnucash/report/report-system", 0))
+    if (!gnc_module_load("gnucash/report", 0))
     {
         return FALSE;
     }
diff --git a/gnucash/report/stylesheets/stylesheet-easy.scm b/gnucash/report/stylesheets/stylesheet-easy.scm
index b1eed52f5..6370a803d 100644
--- a/gnucash/report/stylesheets/stylesheet-easy.scm
+++ b/gnucash/report/stylesheets/stylesheet-easy.scm
@@ -34,7 +34,7 @@
 (use-modules (gnucash gettext))
 
 (gnc:module-load "gnucash/html" 0)
-(gnc:module-load "gnucash/report/report-system" 0)
+(gnc:module-load "gnucash/report" 0)
 
 (define (easy-options)
   (let* ((options (gnc:new-options))
diff --git a/gnucash/report/stylesheets/stylesheet-fancy.scm b/gnucash/report/stylesheets/stylesheet-fancy.scm
index 26dae6e55..fa7191aaa 100644
--- a/gnucash/report/stylesheets/stylesheet-fancy.scm
+++ b/gnucash/report/stylesheets/stylesheet-fancy.scm
@@ -28,7 +28,7 @@
 (use-modules (gnucash gettext))
 
 (gnc:module-load "gnucash/html" 0)
-(gnc:module-load "gnucash/report/report-system" 0)
+(gnc:module-load "gnucash/report" 0)
 
 (define (fancy-options)
   (let* ((options (gnc:new-options))
diff --git a/gnucash/report/stylesheets/stylesheet-footer.scm b/gnucash/report/stylesheets/stylesheet-footer.scm
index 5f22cbcc1..143891ace 100644
--- a/gnucash/report/stylesheets/stylesheet-footer.scm
+++ b/gnucash/report/stylesheets/stylesheet-footer.scm
@@ -39,7 +39,7 @@
 (use-modules (gnucash gettext))
 
 (gnc:module-load "gnucash/html" 0)
-(gnc:module-load "gnucash/report/report-system" 0)
+(gnc:module-load "gnucash/report" 0)
 
 (define (footer-options)
   (let* ((options (gnc:new-options))
diff --git a/gnucash/report/stylesheets/stylesheet-head-or-tail.scm b/gnucash/report/stylesheets/stylesheet-head-or-tail.scm
index be64e663b..1eaeaf305 100644
--- a/gnucash/report/stylesheets/stylesheet-head-or-tail.scm
+++ b/gnucash/report/stylesheets/stylesheet-head-or-tail.scm
@@ -41,7 +41,7 @@
 (use-modules (gnucash gettext))
 
 (gnc:module-load "gnucash/html" 0)
-(gnc:module-load "gnucash/report/report-system" 0)
+(gnc:module-load "gnucash/report" 0)
 
 (define (head-or-tail-options)
   (let* ((options (gnc:new-options))
diff --git a/gnucash/report/stylesheets/stylesheet-plain.scm b/gnucash/report/stylesheets/stylesheet-plain.scm
index 6cb790942..4eca60778 100644
--- a/gnucash/report/stylesheets/stylesheet-plain.scm
+++ b/gnucash/report/stylesheets/stylesheet-plain.scm
@@ -32,7 +32,7 @@
 (use-modules (srfi srfi-14))
 
 (gnc:module-load "gnucash/html" 0)
-(gnc:module-load "gnucash/report/report-system" 0)
+(gnc:module-load "gnucash/report" 0)
 
 ;; plain style sheet
 ;; this should generally be the default style sheet for most reports.
diff --git a/gnucash/report/stylesheets/test/CMakeLists.txt b/gnucash/report/stylesheets/test/CMakeLists.txt
index 38d2f751a..76ca7014d 100644
--- a/gnucash/report/stylesheets/test/CMakeLists.txt
+++ b/gnucash/report/stylesheets/test/CMakeLists.txt
@@ -8,7 +8,7 @@ set(GUILE_DEPENDS
   gncmod-backend-xml
   scm-gnome-utils
   gncmod-html
-  scm-report-system
+  scm-report
   scm-gnome
   scm-report-stylesheets
 )
diff --git a/gnucash/report/test/CMakeLists.txt b/gnucash/report/test/CMakeLists.txt
new file mode 100644
index 000000000..c6e28b5d9
--- /dev/null
+++ b/gnucash/report/test/CMakeLists.txt
@@ -0,0 +1,72 @@
+
+set(REPORT_TEST_INCLUDE_DIRS
+  ${CMAKE_SOURCE_DIR}/libgnucash/gnc-module
+  ${GUILE_INCLUDE_DIRS}
+)
+set(REPORT_TEST_LIBS gnc-module)
+
+gnc_add_test_with_guile(test-link-module-report test-link-module.c
+  REPORT_TEST_INCLUDE_DIRS REPORT_TEST_LIBS
+)
+
+set(scm_test_report_SOURCES
+  test-load-report-module.scm
+  test-test-extras.scm
+)
+
+set (scm_test_report_with_srfi64_SOURCES
+  test-commodity-utils.scm
+  test-report-utilities.scm
+  test-html-utilities-srfi64.scm
+  test-html-fonts.scm
+  test-html-chart.scm
+  test-report-html.scm
+  test-report.scm
+  )
+
+set(GUILE_DEPENDS
+  scm-gnc-module
+  scm-app-utils
+  scm-core-utils
+  scm-gettext
+  scm-engine
+  scm-test-engine
+  scm-scm
+  scm-report-2
+  scm-test-report
+  )
+gnc_add_scheme_tests("${scm_test_report_SOURCES}")
+
+if (HAVE_SRFI64)
+  gnc_add_scheme_test_targets(scm-test-report-srfi64
+    "${scm_test_report_with_srfi64_SOURCES}"
+    "tests"
+    "${GUILE_DEPENDS};scm-srfi64-extras"
+    FALSE
+    )
+
+  gnc_add_scheme_tests ("${scm_test_report_with_srfi64_SOURCES}")
+endif (HAVE_SRFI64)
+
+gnc_add_scheme_test_targets(scm-test-report
+  "test-report-extras.scm"
+  "tests"
+  "${GUILE_DEPENDS}"
+  FALSE
+  )
+
+gnc_add_scheme_test_targets(scm-test-report-2
+  "${scm_test_report_SOURCES}"
+  "tests"
+  "scm-test-report"
+  FALSE
+)
+
+add_dependencies(check scm-test-report)
+set_dist_list(test_report_DIST
+  CMakeLists.txt
+  ${scm_test_report_with_srfi64_SOURCES}
+  ${scm_test_report_SOURCES}
+  test-report-extras.scm
+  test-link-module.c
+)
diff --git a/gnucash/report/report-system/test/test-commodity-utils.scm b/gnucash/report/test/test-commodity-utils.scm
similarity index 99%
rename from gnucash/report/report-system/test/test-commodity-utils.scm
rename to gnucash/report/test/test-commodity-utils.scm
index b360cc12a..0c0a81fef 100644
--- a/gnucash/report/report-system/test/test-commodity-utils.scm
+++ b/gnucash/report/test/test-commodity-utils.scm
@@ -29,7 +29,7 @@
 (use-modules (gnucash engine))
 (use-modules (sw_engine))
 (use-modules (sw_app_utils))
-(use-modules (gnucash report report-system))
+(use-modules (gnucash report report))
 (use-modules (system vm coverage))
 
 (setlocale LC_ALL "C")
diff --git a/gnucash/report/report-system/test/test-html-chart.scm b/gnucash/report/test/test-html-chart.scm
similarity index 95%
rename from gnucash/report/report-system/test/test-html-chart.scm
rename to gnucash/report/test/test-html-chart.scm
index 4e8e82d7b..f077af86d 100644
--- a/gnucash/report/report-system/test/test-html-chart.scm
+++ b/gnucash/report/test/test-html-chart.scm
@@ -1,13 +1,13 @@
 (use-modules (gnucash gnc-module))
 
 (gnc:module-begin-syntax (gnc:module-load "gnucash/app-utils" 0))
-(gnc:module-begin-syntax (gnc:module-load "gnucash/report/report-system" 0))
+(gnc:module-begin-syntax (gnc:module-load "gnucash/report" 0))
 
 (use-modules (srfi srfi-64))
 (use-modules (tests srfi64-extras))
 (use-modules (tests test-engine-extras))
-(use-modules (tests test-report-system-extras))
-(use-modules (gnucash report report-system))
+(use-modules (tests test-report-extras))
+(use-modules (gnucash report report))
 
 (define (run-test)
   (test-runner-factory gnc:test-runner)
diff --git a/gnucash/report/report-system/test/test-html-fonts.scm b/gnucash/report/test/test-html-fonts.scm
similarity index 97%
rename from gnucash/report/report-system/test/test-html-fonts.scm
rename to gnucash/report/test/test-html-fonts.scm
index d136a1de2..c9a0910d9 100644
--- a/gnucash/report/report-system/test/test-html-fonts.scm
+++ b/gnucash/report/test/test-html-fonts.scm
@@ -1,6 +1,6 @@
 (use-modules (srfi srfi-64))
 (use-modules (tests srfi64-extras))
-(load "html-fonts")
+(load "gnucash/report/html-fonts")
 
 (setlocale LC_ALL "C")
 
diff --git a/gnucash/report/report-system/test/test-html-utilities-srfi64.scm b/gnucash/report/test/test-html-utilities-srfi64.scm
similarity index 89%
rename from gnucash/report/report-system/test/test-html-utilities-srfi64.scm
rename to gnucash/report/test/test-html-utilities-srfi64.scm
index 4a5270569..d969a79d5 100644
--- a/gnucash/report/report-system/test/test-html-utilities-srfi64.scm
+++ b/gnucash/report/test/test-html-utilities-srfi64.scm
@@ -1,11 +1,11 @@
 (use-modules (gnucash gnc-module))
 
 (gnc:module-begin-syntax (gnc:module-load "gnucash/app-utils" 0))
-(gnc:module-begin-syntax (gnc:module-load "gnucash/report/report-system" 0))
+(gnc:module-begin-syntax (gnc:module-load "gnucash/report" 0))
 
 (use-modules (tests test-engine-extras))
-(use-modules (tests test-report-system-extras))
-(use-modules (gnucash report report-system))
+(use-modules (tests test-report-extras))
+(use-modules (gnucash report report))
 (use-modules (tests srfi64-extras))
 (use-modules (srfi srfi-64))
 
diff --git a/gnucash/report/report-system/test/test-link-module.c b/gnucash/report/test/test-link-module.c
similarity index 96%
rename from gnucash/report/report-system/test/test-link-module.c
rename to gnucash/report/test/test-link-module.c
index 6bd967c61..8a5183bc8 100644
--- a/gnucash/report/report-system/test/test-link-module.c
+++ b/gnucash/report/test/test-link-module.c
@@ -27,7 +27,7 @@ guile_main(void *closure, int argc, char ** argv)
 {
     GNCModule mod;
     gnc_module_system_init();
-    mod = gnc_module_load("gnucash/report/report-system", 0);
+    mod = gnc_module_load("gnucash/report", 0);
 
     exit(mod == NULL);
 }
diff --git a/gnucash/report/report-system/test/test-load-report-system-module.scm b/gnucash/report/test/test-load-report-module.scm
similarity index 87%
rename from gnucash/report/report-system/test/test-load-report-system-module.scm
rename to gnucash/report/test/test-load-report-module.scm
index b2158de53..aef1452c1 100755
--- a/gnucash/report/report-system/test/test-load-report-system-module.scm
+++ b/gnucash/report/test/test-load-report-module.scm
@@ -10,7 +10,7 @@
 
 (gnc:module-system-init)
 
-(if (gnc:module-load "gnucash/report/report-system" 0)
+(if (gnc:module-load "gnucash/report" 0)
     (begin 
       (display "ok\n")
       (exit 0))
diff --git a/gnucash/report/report-system/test/test-report-system-extras.scm b/gnucash/report/test/test-report-extras.scm
similarity index 97%
rename from gnucash/report/report-system/test/test-report-system-extras.scm
rename to gnucash/report/test/test-report-extras.scm
index bbeef1d5b..9f7db0ad3 100644
--- a/gnucash/report/report-system/test/test-report-system-extras.scm
+++ b/gnucash/report/test/test-report-extras.scm
@@ -17,11 +17,11 @@
 ;; Boston, MA  02110-1301,  USA       gnu at gnu.org
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
-(define-module (tests test-report-system-extras))
+(define-module (tests test-report-extras))
 
 (use-modules (gnucash gnc-module))
 (use-modules (tests test-engine-extras))
-(use-modules (gnucash report report-system))
+(use-modules (gnucash report report))
 (use-modules (sxml simple))
 (use-modules (sxml xpath))
 
diff --git a/gnucash/report/report-system/test/test-report-html.scm b/gnucash/report/test/test-report-html.scm
similarity index 99%
rename from gnucash/report/report-system/test/test-report-html.scm
rename to gnucash/report/test/test-report-html.scm
index e9086eb50..c094bf1c6 100644
--- a/gnucash/report/report-system/test/test-report-html.scm
+++ b/gnucash/report/test/test-report-html.scm
@@ -3,7 +3,7 @@
 (gnc:module-begin-syntax (gnc:module-load "gnucash/app-utils" 0))
 
 (use-modules (tests test-engine-extras))
-(use-modules (gnucash report report-system))
+(use-modules (gnucash report report))
 (use-modules (srfi srfi-64))
 (use-modules (tests srfi64-extras))
 
diff --git a/gnucash/report/report-system/test/test-report-utilities.scm b/gnucash/report/test/test-report-utilities.scm
similarity index 99%
rename from gnucash/report/report-system/test/test-report-utilities.scm
rename to gnucash/report/test/test-report-utilities.scm
index 2a3dad8ea..542177b52 100644
--- a/gnucash/report/report-system/test/test-report-utilities.scm
+++ b/gnucash/report/test/test-report-utilities.scm
@@ -1,13 +1,13 @@
 (use-modules (gnucash gnc-module))
 
 (gnc:module-begin-syntax (gnc:module-load "gnucash/app-utils" 0))
-(gnc:module-begin-syntax (gnc:module-load "gnucash/report/report-system" 0))
+(gnc:module-begin-syntax (gnc:module-load "gnucash/report" 0))
 
 (use-modules (srfi srfi-64))
 (use-modules (tests srfi64-extras))
 (use-modules (tests test-engine-extras))
-(use-modules (tests test-report-system-extras))
-(use-modules (gnucash report report-system))
+(use-modules (tests test-report-extras))
+(use-modules (gnucash report report))
 
 (setlocale LC_ALL "C")
 
diff --git a/gnucash/report/report-system/test/test-report-system.scm b/gnucash/report/test/test-report.scm
similarity index 98%
rename from gnucash/report/report-system/test/test-report-system.scm
rename to gnucash/report/test/test-report.scm
index a2a9d1511..1e3819c40 100644
--- a/gnucash/report/report-system/test/test-report-system.scm
+++ b/gnucash/report/test/test-report.scm
@@ -3,13 +3,13 @@
 (gnc:module-begin-syntax (gnc:module-load "gnucash/app-utils" 0))
 
 (use-modules (tests test-engine-extras))
-(use-modules (gnucash report report-system))
+(use-modules (gnucash report report))
 (use-modules (srfi srfi-64))
 (use-modules (tests srfi64-extras))
 
 (define (run-test)
   (test-runner-factory gnc:test-runner)
-  (test-begin "Testing/Temporary/test-report-system")
+  (test-begin "Testing/Temporary/test-report")
   ;; if (test-runner-factory gnc:test-runner) is commented out, this
   ;; will create Testing/Temporary/test-asset-performance.log
   (test-check1)
@@ -19,7 +19,7 @@
   (test-report-template-getters)
   (test-make-report)
   (test-report)
-  (test-end "Testing/Temporary/test-report-system"))
+  (test-end "Testing/Temporary/test-report"))
 
 (define test4-guid "54c2fc051af64a08ba2334c2e9179e24")
 ;; -----------------------------------------------------------------------
diff --git a/gnucash/report/report-system/test/test-test-extras.scm b/gnucash/report/test/test-test-extras.scm
similarity index 96%
rename from gnucash/report/report-system/test/test-test-extras.scm
rename to gnucash/report/test/test-test-extras.scm
index bd03b2af3..78cd693c6 100644
--- a/gnucash/report/report-system/test/test-test-extras.scm
+++ b/gnucash/report/test/test-test-extras.scm
@@ -17,7 +17,7 @@
 ;; Boston, MA  02110-1301,  USA       gnu at gnu.org
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
-(use-modules (tests test-report-system-extras))
+(use-modules (tests test-report-extras))
 (use-modules (tests test-engine-extras))
 (use-modules (gnucash engine))
 (use-modules (sw_engine))
diff --git a/gnucash/report/report-system/trep-engine.scm b/gnucash/report/trep-engine.scm
similarity index 100%
rename from gnucash/report/report-system/trep-engine.scm
rename to gnucash/report/trep-engine.scm
diff --git a/po/POTFILES.in b/po/POTFILES.in
index e244701ec..55eeae484 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -418,11 +418,34 @@ gnucash/register/register-gnome/gnucash-style.c
 gnucash/register/register-gnome/pricecell-gnome.c
 gnucash/register/register-gnome/quickfillcell-gnome.c
 gnucash/register/register-gnome/table-gnome.c
+gnucash/report/commodity-utilities.scm
+gnucash/report/eguile-gnc.scm
+gnucash/report/eguile-html-utilities.scm
+gnucash/report/eguile-utilities.scm
+gnucash/report/gncmod-report.c
+gnucash/report/gnc-report.c
+gnucash/report/html-acct-table.scm
+gnucash/report/html-anytag.scm
+gnucash/report/html-barchart.scm
+gnucash/report/html-chart.scm
+gnucash/report/html-document.scm
+gnucash/report/html-fonts.scm
+gnucash/report/html-linechart.scm
+gnucash/report/html-piechart.scm
+gnucash/report/html-scatter.scm
+gnucash/report/html-style-info.scm
+gnucash/report/html-style-sheet.scm
+gnucash/report/html-table.scm
+gnucash/report/html-text.scm
+gnucash/report/html-utilities.scm
 gnucash/report/locale-specific/us/de_DE.scm
 gnucash/report/locale-specific/us/gncmod-locale-reports-us.c
 gnucash/report/locale-specific/us/taxtxf-de_DE.scm
 gnucash/report/locale-specific/us/taxtxf.scm
 gnucash/report/locale-specific/us/us.scm
+gnucash/report/options-utilities.scm
+gnucash/report/report-core.scm
+gnucash/report/report-register-hooks.scm
 gnucash/report/reports/aging.scm
 gnucash/report/reports/example/average-balance.scm
 gnucash/report/reports/example/daily-reports.scm
@@ -471,32 +494,8 @@ gnucash/report/reports/standard/view-column.scm
 gnucash/report/reports/support/balsheet-eg.eguile.scm
 gnucash/report/reports/support/receipt.eguile.scm
 gnucash/report/reports/support/taxinvoice.eguile.scm
-gnucash/report/report-system/commodity-utilities.scm
-gnucash/report/report-system/eguile-gnc.scm
-gnucash/report/report-system/eguile-html-utilities.scm
-gnucash/report/report-system/eguile-utilities.scm
-gnucash/report/report-system/gncmod-report-system.c
-gnucash/report/report-system/gnc-report.c
-gnucash/report/report-system/html-acct-table.scm
-gnucash/report/report-system/html-anytag.scm
-gnucash/report/report-system/html-barchart.scm
-gnucash/report/report-system/html-chart.scm
-gnucash/report/report-system/html-document.scm
-gnucash/report/report-system/html-fonts.scm
-gnucash/report/report-system/html-linechart.scm
-gnucash/report/report-system/html-piechart.scm
-gnucash/report/report-system/html-scatter.scm
-gnucash/report/report-system/html-style-info.scm
-gnucash/report/report-system/html-style-sheet.scm
-gnucash/report/report-system/html-table.scm
-gnucash/report/report-system/html-text.scm
-gnucash/report/report-system/html-utilities.scm
-gnucash/report/report-system/options-utilities.scm
-gnucash/report/report-system/report-register-hooks.scm
-gnucash/report/report-system/report.scm
-gnucash/report/report-system/report-system.scm
-gnucash/report/report-system/report-utilities.scm
-gnucash/report/report-system/trep-engine.scm
+gnucash/report/report.scm
+gnucash/report/report-utilities.scm
 gnucash/report/stylesheets/gncmod-stylesheets.c
 gnucash/report/stylesheets/gnc-plugin-stylesheets.c
 gnucash/report/stylesheets/stylesheet-easy.scm
@@ -505,6 +504,7 @@ gnucash/report/stylesheets/stylesheet-footer.scm
 gnucash/report/stylesheets/stylesheet-head-or-tail.scm
 gnucash/report/stylesheets/stylesheet-plain.scm
 gnucash/report/stylesheets/stylesheets.scm
+gnucash/report/trep-engine.scm
 libgnucash/app-utils/app-utils.scm
 libgnucash/app-utils/business-helpers.c
 libgnucash/app-utils/business-options.c



Summary of changes:
 .gitignore                                         |  10 +-
 CMakeLists.txt                                     |   8 +-
 borrowed/guile-json/CMakeLists.txt                 |  20 +-
 borrowed/guile-json/json.scm                       |  10 +-
 borrowed/guile-json/json/CMakeLists.txt            |   4 +-
 borrowed/guile-json/json/builder.scm               |   2 +-
 borrowed/guile-json/json/parser.scm                |   2 +-
 borrowed/guile-json/json/syntax.scm                |   2 +-
 common/cmake_modules/GncAddSchemeTargets.cmake     | 162 +++++++++++-
 common/cmake_modules/GncAddTest.cmake              |  40 ++-
 common/test-core/CMakeLists.txt                    |   4 +
 gnucash/CMakeLists.txt                             |   2 +-
 gnucash/environment.in                             |   4 +-
 gnucash/gnome-utils/CMakeLists.txt                 |   4 +-
 gnucash/gnome-utils/gnome-utils.scm                |   2 +-
 gnucash/gnome/CMakeLists.txt                       |  10 +-
 gnucash/gnome/gnc-plugin-report-system.c           | 275 +++++++++++++++++++++
 gnucash/gnome/gnc-plugin-report-system.h           |  59 +++++
 gnucash/gnome/gnome.i                              |   1 -
 gnucash/gnome/report-menus.scm                     |   4 +-
 gnucash/gnome/window-report.c                      | 138 -----------
 gnucash/gnome/window-report.h                      |   2 -
 gnucash/gnucash-bin.c                              |  10 +-
 gnucash/import-export/qif-imp/CMakeLists.txt       |  12 +-
 gnucash/import-export/qif-imp/gncmod-qif-import.c  |   2 +-
 gnucash/import-export/qif-imp/qif-dialog-utils.scm |   2 +-
 gnucash/import-export/qif-imp/qif-file.scm         |   2 +-
 gnucash/import-export/qif-imp/qif-import.scm       |  18 +-
 gnucash/import-export/qif-imp/qif-objects.scm      |   2 +-
 gnucash/import-export/qif-imp/qif-parse.scm        |   2 +-
 gnucash/import-export/qif-imp/qif-to-gnc.scm       |   2 +-
 gnucash/import-export/qif-imp/string.scm           |   2 +-
 gnucash/report/CMakeLists.txt                      | 144 ++++++++++-
 .../{report-system => }/commodity-utilities.scm    |   0
 .../report/{report-system => }/doc/report-html.txt |   0
 .../{report-system => }/eguile-html-utilities.scm  |   4 +-
 .../{report-system => }/eguile-utilities.scm       |  49 +++-
 .../{report-system/eguile-gnc.scm => eguile.scm}   |   4 +-
 gnucash/report/{report-system => }/gnc-report.c    |   0
 gnucash/report/{report-system => }/gnc-report.h    |   0
 .../gncmod-report-system.c => gncmod-report.c}     |  29 +--
 .../report/{report-system => }/html-acct-table.scm |   0
 gnucash/report/{report-system => }/html-anytag.scm |   0
 .../report/{report-system => }/html-barchart.scm   |   2 +-
 gnucash/report/{report-system => }/html-chart.scm  |   2 +-
 .../report/{report-system => }/html-document.scm   |   7 +-
 gnucash/report/{report-system => }/html-fonts.scm  |   0
 .../report/{report-system => }/html-linechart.scm  |   2 +-
 .../report/{report-system => }/html-piechart.scm   |   2 +-
 .../report/{report-system => }/html-scatter.scm    |   2 +-
 .../report/{report-system => }/html-style-info.scm |   0
 .../{report-system => }/html-style-sheet.scm       |   0
 gnucash/report/{report-system => }/html-table.scm  |   0
 gnucash/report/{report-system => }/html-text.scm   |   0
 .../report/{report-system => }/html-utilities.scm  |   0
 gnucash/report/locale-specific/CMakeLists.txt      |   4 -
 gnucash/report/locale-specific/us/CMakeLists.txt   |  62 -----
 gnucash/report/locale-specific/us/de_DE.scm        |  22 --
 .../locale-specific/us/gncmod-locale-reports-us.c  | 128 ----------
 .../report/locale-specific/us/test/CMakeLists.txt  |  25 --
 .../locale-specific/us/test/test-link-module.c     |  26 --
 .../test-load-report-locale-specific-module.scm    |  14 --
 gnucash/report/locale-specific/us/us.scm           |  22 --
 .../{report-system => }/options-utilities.scm      |   0
 .../{report-system/report.scm => report-core.scm}  |  10 +-
 .../{report-system => }/report-register-hooks.scm  |   0
 gnucash/report/report-system/CMakeLists.txt        | 107 --------
 gnucash/report/report-system/test/CMakeLists.txt   |  72 ------
 .../{report-system => }/report-utilities.scm       |   0
 .../{report-system/report-system.i => report.i}    |   6 +-
 .../report-system.scm => report.scm}               | 115 +++++++--
 gnucash/report/reports/CMakeLists.txt              | 111 ++++++++-
 gnucash/report/reports/aging.scm                   |   6 +-
 gnucash/report/reports/example/average-balance.scm |   4 +-
 gnucash/report/reports/example/daily-reports.scm   |   4 +-
 gnucash/report/reports/example/hello-world.scm     |   4 +-
 gnucash/report/reports/example/sample-graphs.scm   |   4 +-
 .../report/reports/example/welcome-to-gnucash.scm  |   8 +-
 .../locale-specific/de_DE/taxtxf.scm}              |   6 +-
 .../{ => reports}/locale-specific/us/taxtxf.scm    |   6 +-
 gnucash/report/reports/reports.scm                 |  74 +-----
 .../report/reports/standard/account-piecharts.scm  |   4 +-
 .../report/reports/standard/account-summary.scm    |   4 +-
 .../report/reports/standard/advanced-portfolio.scm |   4 +-
 .../report/reports/standard/balance-forecast.scm   |   4 +-
 gnucash/report/reports/standard/balance-sheet.scm  |   4 +-
 gnucash/report/reports/standard/balsheet-eg.scm    |  11 +-
 gnucash/report/reports/standard/balsheet-pnl.scm   |   4 +-
 .../reports/standard/budget-balance-sheet.scm      |   4 +-
 .../report/reports/standard/budget-barchart.scm    |   4 +-
 gnucash/report/reports/standard/budget-flow.scm    |   4 +-
 .../reports/standard/budget-income-statement.scm   |   4 +-
 gnucash/report/reports/standard/budget.scm         |   4 +-
 gnucash/report/reports/standard/cash-flow.scm      |   4 +-
 .../report/reports/standard/cashflow-barchart.scm  |   6 +-
 .../report/reports/standard/category-barchart.scm  |   4 +-
 .../report/reports/standard/customer-summary.scm   |   5 +-
 gnucash/report/reports/standard/dashboard.scm      |   8 +-
 .../report/reports/standard/equity-statement.scm   |   4 +-
 .../report/reports/standard/general-journal.scm    |   4 +-
 gnucash/report/reports/standard/general-ledger.scm |   4 +-
 .../reports/standard/income-gst-statement.scm      |   4 +-
 .../report/reports/standard/income-statement.scm   |   4 +-
 gnucash/report/reports/standard/invoice.scm        |   5 +-
 gnucash/report/reports/standard/job-report.scm     |   5 +-
 gnucash/report/reports/standard/net-charts.scm     |   4 +-
 gnucash/report/reports/standard/owner-report.scm   |   5 +-
 gnucash/report/reports/standard/payables.scm       |   7 +-
 gnucash/report/reports/standard/portfolio.scm      |   4 +-
 gnucash/report/reports/standard/price-scatter.scm  |   4 +-
 gnucash/report/reports/standard/receipt.scm        |  14 +-
 gnucash/report/reports/standard/receivables.scm    |   7 +-
 .../report/reports/standard/reconcile-report.scm   |   4 +-
 gnucash/report/reports/standard/register.scm       |   6 +-
 gnucash/report/reports/standard/sx-summary.scm     |   4 +-
 gnucash/report/reports/standard/taxinvoice.scm     |  14 +-
 .../report/reports/standard/test/CMakeLists.txt    |   2 +-
 .../reports/standard/test/test-average-balance.scm |  12 +-
 .../reports/standard/test/test-balsheet-pnl.scm    |  10 +-
 .../report/reports/standard/test/test-budget.scm   |  10 +-
 .../reports/standard/test/test-cash-flow.scm       |   4 +-
 .../standard/test/test-cashflow-barchart.scm       |  10 +-
 .../report/reports/standard/test/test-charts.scm   |  18 +-
 .../reports/standard/test/test-income-gst.scm      |   8 +-
 .../report/reports/standard/test/test-invoice.scm  |   8 +-
 .../report/reports/standard/test/test-register.scm |  10 +-
 .../test/test-standard-category-report.scm         |  12 +-
 .../standard/test/test-standard-net-barchart.scm   |   8 +-
 .../standard/test/test-standard-net-linechart.scm  |   8 +-
 .../reports/standard/test/test-stress-options.scm  |  11 +-
 .../reports/standard/test/test-transaction.scm     |  10 +-
 gnucash/report/reports/standard/transaction.scm    |   4 +-
 gnucash/report/reports/standard/trial-balance.scm  |   4 +-
 gnucash/report/reports/standard/view-column.scm    |   8 +-
 gnucash/report/reports/support/CMakeLists.txt      |  18 +-
 gnucash/report/stylesheets/CMakeLists.txt          |  83 ++-----
 .../stylesheets/{stylesheet-easy.scm => easy.scm}  |   4 +-
 .../{stylesheet-fancy.scm => fancy.scm}            |   4 +-
 .../{stylesheet-footer.scm => footer.scm}          |   4 +-
 .../report/stylesheets/gnc-plugin-stylesheets.c    | 135 ----------
 .../report/stylesheets/gnc-plugin-stylesheets.h    |  62 -----
 gnucash/report/stylesheets/gncmod-stylesheets.c    |  86 -------
 ...tylesheet-head-or-tail.scm => head-or-tail.scm} |   4 +-
 .../{stylesheet-plain.scm => plain.scm}            |   4 +-
 gnucash/report/stylesheets/stylesheets.scm         |  34 ---
 gnucash/report/stylesheets/test/CMakeLists.txt     |  25 --
 .../test/test-load-report-stylesheets-module.scm   |  23 --
 gnucash/report/test/CMakeLists.txt                 |  75 ++++++
 .../test/test-commodity-utils.scm                  |   2 +-
 .../{report-system => }/test/test-html-chart.scm   |   6 +-
 .../{report-system => }/test/test-html-fonts.scm   |   2 +-
 .../test/test-html-utilities-srfi64.scm            |   6 +-
 .../{report-system => }/test/test-link-module.c    |   2 +-
 .../test-load-report-module.scm}                   |   2 +-
 .../test-report-extras.scm}                        |   4 +-
 .../{report-system => }/test/test-report-html.scm  |   2 +-
 .../test/test-report-utilities.scm                 |   6 +-
 .../test-report.scm}                               |   6 +-
 .../{report-system => }/test/test-test-extras.scm  |   2 +-
 gnucash/report/{report-system => }/trep-engine.scm |   0
 gnucash/ui/CMakeLists.txt                          |   2 +-
 ...eets-ui.xml => gnc-plugin-report-system-ui.xml} |   0
 gnucash/ui/osx_accel_map                           |   2 +-
 libgnucash/app-utils/CMakeLists.txt                |  26 +-
 libgnucash/app-utils/app-utils.scm                 |  12 +-
 libgnucash/app-utils/business-prefs.scm            |   2 +-
 libgnucash/app-utils/gnc-exp-parser.c              |   2 +-
 libgnucash/app-utils/test/test-c-interface.scm     |   2 +-
 libgnucash/core-utils/core-utils.i                 |   4 +
 libgnucash/core-utils/core-utils.scm               |   2 +
 libgnucash/core-utils/gnc-filepath-utils.cpp       |  16 ++
 libgnucash/core-utils/gnc-filepath-utils.h         |   1 +
 libgnucash/core-utils/gnc-locale-utils.c           |  10 +
 libgnucash/core-utils/gnc-locale-utils.h           |   4 +
 libgnucash/core-utils/gnc-path.c                   |  32 +--
 libgnucash/core-utils/gnc-path.h                   |   8 +-
 libgnucash/core-utils/gncla-dir.h.in               |   2 +
 libgnucash/engine/CMakeLists.txt                   |   4 +-
 libgnucash/engine/engine.scm                       |   8 +-
 libgnucash/engine/test/CMakeLists.txt              |   5 +
 libgnucash/scm/test/CMakeLists.txt                 |   5 +
 libgnucash/scm/test/test-module-deprecation.scm    |  12 +
 libgnucash/tax/us/CMakeLists.txt                   |  38 ++-
 libgnucash/tax/us/gncmod-tax-us.c                  |   4 +-
 libgnucash/tax/us/{de_DE.scm => tax-de_DE.scm}     |   6 +-
 libgnucash/tax/us/{us.scm => tax-us.scm}           |   6 +-
 po/POTFILES.in                                     |  77 +++---
 187 files changed, 1511 insertions(+), 1630 deletions(-)
 create mode 100644 gnucash/gnome/gnc-plugin-report-system.c
 create mode 100644 gnucash/gnome/gnc-plugin-report-system.h
 rename gnucash/report/{report-system => }/commodity-utilities.scm (100%)
 rename gnucash/report/{report-system => }/doc/report-html.txt (100%)
 rename gnucash/report/{report-system => }/eguile-html-utilities.scm (98%)
 rename gnucash/report/{report-system => }/eguile-utilities.scm (68%)
 rename gnucash/report/{report-system/eguile-gnc.scm => eguile.scm} (98%)
 rename gnucash/report/{report-system => }/gnc-report.c (100%)
 rename gnucash/report/{report-system => }/gnc-report.h (100%)
 rename gnucash/report/{report-system/gncmod-report-system.c => gncmod-report.c} (77%)
 rename gnucash/report/{report-system => }/html-acct-table.scm (100%)
 rename gnucash/report/{report-system => }/html-anytag.scm (100%)
 rename gnucash/report/{report-system => }/html-barchart.scm (99%)
 rename gnucash/report/{report-system => }/html-chart.scm (99%)
 rename gnucash/report/{report-system => }/html-document.scm (98%)
 rename gnucash/report/{report-system => }/html-fonts.scm (100%)
 rename gnucash/report/{report-system => }/html-linechart.scm (99%)
 rename gnucash/report/{report-system => }/html-piechart.scm (99%)
 rename gnucash/report/{report-system => }/html-scatter.scm (99%)
 rename gnucash/report/{report-system => }/html-style-info.scm (100%)
 rename gnucash/report/{report-system => }/html-style-sheet.scm (100%)
 rename gnucash/report/{report-system => }/html-table.scm (100%)
 rename gnucash/report/{report-system => }/html-text.scm (100%)
 rename gnucash/report/{report-system => }/html-utilities.scm (100%)
 delete mode 100644 gnucash/report/locale-specific/CMakeLists.txt
 delete mode 100644 gnucash/report/locale-specific/us/CMakeLists.txt
 delete mode 100644 gnucash/report/locale-specific/us/de_DE.scm
 delete mode 100644 gnucash/report/locale-specific/us/gncmod-locale-reports-us.c
 delete mode 100644 gnucash/report/locale-specific/us/test/CMakeLists.txt
 delete mode 100644 gnucash/report/locale-specific/us/test/test-link-module.c
 delete mode 100755 gnucash/report/locale-specific/us/test/test-load-report-locale-specific-module.scm
 delete mode 100644 gnucash/report/locale-specific/us/us.scm
 rename gnucash/report/{report-system => }/options-utilities.scm (100%)
 rename gnucash/report/{report-system/report.scm => report-core.scm} (99%)
 rename gnucash/report/{report-system => }/report-register-hooks.scm (100%)
 delete mode 100644 gnucash/report/report-system/CMakeLists.txt
 delete mode 100644 gnucash/report/report-system/test/CMakeLists.txt
 rename gnucash/report/{report-system => }/report-utilities.scm (100%)
 rename gnucash/report/{report-system/report-system.i => report.i} (95%)
 rename gnucash/report/{report-system/report-system.scm => report.scm} (89%)
 rename gnucash/report/{locale-specific/us/taxtxf-de_DE.scm => reports/locale-specific/de_DE/taxtxf.scm} (99%)
 rename gnucash/report/{ => reports}/locale-specific/us/taxtxf.scm (99%)
 rename gnucash/report/stylesheets/{stylesheet-easy.scm => easy.scm} (99%)
 rename gnucash/report/stylesheets/{stylesheet-fancy.scm => fancy.scm} (99%)
 rename gnucash/report/stylesheets/{stylesheet-footer.scm => footer.scm} (99%)
 delete mode 100644 gnucash/report/stylesheets/gnc-plugin-stylesheets.c
 delete mode 100644 gnucash/report/stylesheets/gnc-plugin-stylesheets.h
 delete mode 100644 gnucash/report/stylesheets/gncmod-stylesheets.c
 rename gnucash/report/stylesheets/{stylesheet-head-or-tail.scm => head-or-tail.scm} (99%)
 rename gnucash/report/stylesheets/{stylesheet-plain.scm => plain.scm} (98%)
 delete mode 100644 gnucash/report/stylesheets/stylesheets.scm
 delete mode 100644 gnucash/report/stylesheets/test/CMakeLists.txt
 delete mode 100755 gnucash/report/stylesheets/test/test-load-report-stylesheets-module.scm
 create mode 100644 gnucash/report/test/CMakeLists.txt
 rename gnucash/report/{report-system => }/test/test-commodity-utils.scm (99%)
 rename gnucash/report/{report-system => }/test/test-html-chart.scm (95%)
 rename gnucash/report/{report-system => }/test/test-html-fonts.scm (97%)
 rename gnucash/report/{report-system => }/test/test-html-utilities-srfi64.scm (89%)
 rename gnucash/report/{report-system => }/test/test-link-module.c (96%)
 rename gnucash/report/{report-system/test/test-load-report-system-module.scm => test/test-load-report-module.scm} (87%)
 rename gnucash/report/{report-system/test/test-report-system-extras.scm => test/test-report-extras.scm} (97%)
 rename gnucash/report/{report-system => }/test/test-report-html.scm (99%)
 rename gnucash/report/{report-system => }/test/test-report-utilities.scm (99%)
 rename gnucash/report/{report-system/test/test-report-system.scm => test/test-report.scm} (98%)
 rename gnucash/report/{report-system => }/test/test-test-extras.scm (96%)
 rename gnucash/report/{report-system => }/trep-engine.scm (100%)
 rename gnucash/ui/{gnc-plugin-stylesheets-ui.xml => gnc-plugin-report-system-ui.xml} (100%)
 create mode 100644 libgnucash/scm/test/test-module-deprecation.scm
 rename libgnucash/tax/us/{de_DE.scm => tax-de_DE.scm} (93%)
 rename libgnucash/tax/us/{us.scm => tax-us.scm} (93%)



More information about the gnucash-changes mailing list