- Update to 5.10:

+ Trading Accounts
  + Segfault/Crash if payment dialog change from customer to vendor
  + gnucash 5.8 crashes on windows 10 while importing qif
  + Crash when creating ETF transaction
  + Crash when changing accounting period end date
  + Type-Ahead feature lost account setting functionality
  + Right-click issue in import window
  + Right-click issue in reconcile window
  + Crash deleting and recreating an SX with the scheduled transaction editor
    open
  + Duplicate information in description when importing CAMT.053.001.02 via
    aqbanking
  + Edit find account jump then open, open the last highlighted account not the
    jumped to account
  + Silent crash on CSV import
  + Cannot translate different meanings of string "_Balance" to Chinese.
  + Transaction Report: Cannot subtotal based on Number field
  + Numeric value in exported CSV transactions
  + Tabbing through fields autoselects all but Num field
  + Crash attempting to edit a scheduled transaction
  + Crash when clicking on Schedule Transaction Editor
  + Tabs now close when you middle-click on them.
  + The SX editor's saved duration and height are stored differently in
    preferences so values previously saved will be lost when switching between
    versions 5.9 and 5.10 (and later). We regret the inconvenience but the new
    scheme better matches GnuCash's use of the preferences.
  + Allow 0 cash amount when using the Stock Assistant to create a sell
    transaction. This might happen if the commission and fees exactly balance
    the proceeds of the sale.
  + Enforce searching for our gsettings schema files first where they were
    installed. This was not done when the installation prefix was /usr or
    /usr/local which could potentially cause gnucash to find other schema files
    first.
  + Set tooltip text on the outer tab container again so that it can be updated
    by main_window_update_page_long_name.
  + Tooltips on chart reports now appear any time the pointer hovers in the
    chart area and reflect the nearest point. Previously the pointer had to be
    very close to a point.
  + Updated the quote source lists in the Security Editor dialog to reflect the
    current Finance::Quote version.
  + Display a warning dialog when a transaction is unbalanceable because the
    user has set a minimum fraction on an account smaller than the security's
    fraction in a book using trading accounts.
  + Deleting a commodity will fail if there are accounts denominated in the
    commodity. When reporting the error to the user list those accounts.
  + Correct in Tips of the Day the IRC network where GnuCash's channel can be
    found.
  + Ensure Python bindings Session constructor loads the session's data.
  + Fix compile failures with Boost 1.87. This requires the minimum Boost
    version to be 1.67, removing the option for distributions to patch older
    versions.
  + Prevent deleting an account with an open register from logging spurious
    errors
  + Check that GUI refreshes are not suspended before calling
    gnc_gui_refresh_all.
  + Unify wording for alphavazntage tooltips.
  + New script to update translator-credits.
  + Document cmake 3.14 requirement set a year ago.

OBS-URL: https://build.opensuse.org/package/show/Office/gnucash?expand=0&rev=53
This commit is contained in:
Johannes Engel 2025-01-16 07:11:45 +00:00 committed by Git OBS Bridge
commit e3639852dc
15 changed files with 3472 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -0,0 +1,23 @@
## Default LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.bsp filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gem filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.lz filter=lfs diff=lfs merge=lfs -text
*.lzma filter=lfs diff=lfs merge=lfs -text
*.obscpio filter=lfs diff=lfs merge=lfs -text
*.oxt filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.rpm filter=lfs diff=lfs merge=lfs -text
*.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
.osc

View File

@ -0,0 +1,52 @@
--- gnucash-4.1/common/cmake_modules/GncAddTest.cmake.orig 2020-08-02 21:15:33.177983850 +0200
+++ gnucash-4.1/common/cmake_modules/GncAddTest.cmake 2020-08-08 10:13:40.567411650 +0200
@@ -130,13 +130,17 @@ function(gnc_gtest_configure)
unset(GTEST_SRC_DIR CACHE)
if (GTEST_ROOT)
find_path(GTEST_SRC_DIR src/gtest-all.cc NO_CMAKE_SYSTEM_PATH
- PATHS ${GTEST_ROOT}/googletest)
+ PATHS ${GTEST_ROOT})
endif()
if (GTEST_SRC_DIR)
- if (EXISTS ${GTEST_SRC_DIR}/include/gtest/gtest.h)
- set(GTEST_INCLUDE_DIR ${GTEST_SRC_DIR}/include CACHE PATH "" FORCE)
+ if (EXISTS ${GTEST_SRC_DIR}/googletest/include/gtest/gtest.h)
+ set(GTEST_INCLUDE_DIR ${GTEST_SRC_DIR}/googletest/include CACHE PATH "" FORCE)
else()
- message(FATAL_ERROR "GTEST sources found, but it doesn't have 'gtest/gtest.h'")
+ if (EXISTS ${GTEST_SRC_DIR}/gtest.h)
+ set(GTEST_INCLUDE_DIR ${GTEST_SRC_DIR} CACHE PATH "" FORCE)
+ else()
+ message(FATAL_ERROR "GTEST sources found, but it doesn't have 'gtest/gtest.h'")
+ endif()
endif()
else()
if (GTEST_ROOT)
@@ -168,15 +172,24 @@ function(gnc_gtest_configure)
message(STATUS "Checking for GMOCK")
unset(GMOCK_SRC_DIR CACHE)
- if (GTEST_ROOT)
+ if (GMOCK_ROOT)
find_path(GMOCK_SRC_DIR src/gmock-all.cc NO_CMAKE_SYSTEM_PATH
- PATHS ${GTEST_ROOT}/googlemock)
+ PATHS ${GMOCK_ROOT})
+ else()
+ if (GTEST_ROOT)
+ find_path(GMOCK_SRC_DIR src/gmock-all.cc NO_CMAKE_SYSTEM_PATH
+ PATHS ${GTEST_ROOT}/googlemock)
+ endif()
endif()
if (GMOCK_SRC_DIR)
if (EXISTS ${GMOCK_SRC_DIR}/include/gmock/gmock.h)
set(GMOCK_INCLUDE_DIR ${GMOCK_SRC_DIR}/include CACHE PATH "" FORCE)
else()
- message(FATAL_ERROR "GMOCK sources found, but it doesn't have 'gmock/gmock.h'")
+ if (EXISTS ${GMOCK_SRC_DIR}/gmock.h)
+ set(GMOCK_INCLUDE_DIR ${GMOCK_SRC_DIR} CACHE PATH "" FORCE)
+ else()
+ message(FATAL_ERROR "GMOCK sources found, but it doesn't have 'gmock/gmock.h'")
+ endif()
endif()
else()
if (GTEST_ROOT)

3
gnucash-5.10.tar.bz2 Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:789d9f3698ee5b86720279a3a3e10e7744210e12c525ae7f03d32fa70407ad93
size 15075046

3
gnucash-5.6.tar.bz2 Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:b4b42c626350f3e79f7ca1f2173545cc63ddee1addf2460b1a1f22221bf21bd1
size 15110621

3
gnucash-5.8.tar.bz2 Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:a2c823fb700b9d4598692ec81394959bde388d8ef191efe4ea2c02426bb52593
size 14998331

3
gnucash-5.9.tar.bz2 Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:5be2e5364fc36464fc32c768e2ab460a630f74db6aeb7d44266e3dab98222fd0
size 15032324

View File

@ -0,0 +1,45 @@
Index: libgnucash/quotes/gnc-fq-update.in
===================================================================
--- a/libgnucash/quotes/gnc-fq-update.in
+++ b/libgnucash/quotes/gnc-fq-update.in
@@ -24,11 +24,39 @@
use strict;
use CPAN;
+print "\n";
+print "WARNING: This program updates several Perl packages to untested latest\n";
+print "versions from CPAN. It could potentially cause unexpected failures\n";
+print "in any program or future upgrade problems.\n";
+print "\n";
+print "It is strongly recommended NOT TO USE this program and report possible\n";
+print "problems with parsing of stock quotes to http://bugzilla.novell.com/\n";
+print "\n";
+print "Please use the Perl packages provided by the distribution instead!\n";
+print "\n\n";
+
+print "Do you want to continue? (y/n) ";
+
+my $input = <STDIN>;
+chomp ($input);
+
+exit 0 if ($input ne "y");
+print "\n\n";
+print "It invalidates your system certification!\n";
+print "\n";
+print "Are you absolutely sure? Do you prefer to abort now? (y/n) ";
+
+my $input = <STDIN>;
+chomp ($input);
+
+exit 0 if ($input ne "n");
+
+
if ($( != 0) {
print "\n";
print "You probably need to be root before running gnc-fq-update.";
print "\n\n";
- print "Are you sure, you want to update parts of your Perl library? (y/n) ";
+ print "Are you sure, you want to update parts of your Perl library (RECONSIDER - Last warning!)? (y/n) ";
my $input = <STDIN>;
chomp ($input);

View File

@ -0,0 +1,32 @@
See https://github.com/Gnucash/gnucash/commit/b33b864c2fa0ba72d1940465e7fa962dd36833c9
--- gnucash-5.6/gnucash/import-export/qif-imp/qif-to-gnc.scm.orig 2024-04-02 23:12:50.335306666 +0200
+++ gnucash-5.6/gnucash/import-export/qif-imp/qif-to-gnc.scm 2024-04-01 23:13:12.071450498 +0200
@@ -596,13 +596,6 @@
(else
(apply xaccTransSetDate gnc-xtn (qif-xtn:date qif-xtn))))
- (unless qif-action
- (qif-import:log progress-dialog "qif-import:qif-xtn-to-gnc-xtn"
- (format #f (G_ "Missing QIF investment action for transaction dated ~a.")
- (qof-print-date (qif-date-to-time64 qif-date))))
- (throw 'missing-action "qif-import:qif-xtn-to-gnc-xtn" "Missing investment action."
- #f #f))
-
;; fixme: bug #105
(if qif-payee
(xaccTransSetDescription gnc-xtn qif-payee))
@@ -743,6 +736,13 @@
(if (not num-shares) (set! num-shares (gnc-numeric-zero)))
+ (unless qif-action
+ (qif-import:log progress-dialog "qif-import:qif-xtn-to-gnc-xtn"
+ (format #f (G_ "Missing QIF investment action for transaction dated ~a.")
+ (qof-print-date (qif-date-to-time64 qif-date))))
+ (throw 'missing-action "qif-import:qif-xtn-to-gnc-xtn" "Missing investment action."
+ #f #f))
+
;; Determine the extended price of all shares without commission.
(if xtn-amt
;; Adjust for commission (if any).

21
gnucash-icu.patch Normal file
View File

@ -0,0 +1,21 @@
--- gnucash-5.9/libgnucash/engine/CMakeLists.txt.orig 2024-11-24 16:03:34.430747300 +0100
+++ gnucash-5.9/libgnucash/engine/CMakeLists.txt 2024-11-24 16:08:45.978821800 +0100
@@ -136,6 +136,8 @@ add_custom_command (
)
add_custom_target(iso-4217-c DEPENDS ${ISO_4217_C})
+find_package(ICU REQUIRED COMPONENTS uc i18n)
+
set (engine_SOURCES
Account.cpp
Recurrence.cpp
@@ -237,7 +239,8 @@ target_link_libraries(gnc-engine
gnc-core-utils
${Boost_DATE_TIME_LIBRARY}
${Boost_REGEX_LIBRARY}
- ${ICU4C_I18N_LDFLAGS}
+ ICU::uc
+ ICU::i18n
${REGEX_LDFLAGS}
${GMODULE_LDFLAGS}
PkgConfig::GLIB2

10
gnucash-libm.patch Normal file
View File

@ -0,0 +1,10 @@
--- gnucash-4.1/libgnucash/app-utils/CMakeLists.txt.orig 2020-08-02 23:12:50.335306666 +0200
+++ gnucash-4.1/libgnucash/app-utils/CMakeLists.txt 2020-08-02 23:13:12.071450498 +0200
@@ -88,6 +88,7 @@ set(app_utils_ALL_LIBRARIES
${LIBXML2_LDFLAGS}
${LIBXSLT_LDFLAGS}
${STANDARD_MATH_LIBRARY}
+ -lm
)
set(app_utils_ALL_INCLUDES

7
gnucash-rpmlintrc Normal file
View File

@ -0,0 +1,7 @@
# This line is mandatory to access the configuration functions
from Config import *
addFilter("gnucash.* devel-file-in-non-devel-package .*/usr/lib.*\.so")
addFilter("gnucash.* non-executable-script .*/usr/share/gnucash/python/pycons/.*\.py")
# Splitting the shared libs is not desired at the moment
addFilter("gnucash.* shlib-policy-missing-suffix")

13
gnucash-swig43.patch Normal file
View File

@ -0,0 +1,13 @@
--- gnucash-5.9/bindings/python/time64.i.orig 2024-11-24 15:50:32.091682300 +0100
+++ gnucash-5.9/bindings/python/time64.i 2024-11-24 15:50:49.204226200 +0100
@@ -149,8 +149,8 @@
t.tm_mday, t.tm_hour, t.tm_min,
t.tm_sec, 0);
- $result = SWIG_Python_AppendOutput($result, tp);
- } else $result = SWIG_Python_AppendOutput($result, Py_None);
+ $result = SWIG_AppendOutput($result, tp);
+ } else $result = SWIG_AppendOutput($result, Py_None);
}
%apply time64 *date { time64 *last_date };

3030
gnucash.changes Normal file

File diff suppressed because it is too large Load Diff

226
gnucash.spec Normal file
View File

@ -0,0 +1,226 @@
#
# spec file for package gnucash
#
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%define __builder ninja
# Define used guile version
%if 0%{?suse_version} > 1500
%define guile_version 3.0
%else
%if 0%{?sle_version} >= 150200
%define guile_version 2.0
%endif
%endif
%if 0%{?suse_version} > 1600
%bcond_without python
%else
%bcond_with python
%endif
Name: gnucash
Version: 5.10
Release: 0
Summary: Personal Finance Manager
License: SUSE-GPL-2.0-with-openssl-exception OR SUSE-GPL-3.0-with-openssl-exception
Group: Productivity/Office/Finance
URL: http://www.gnucash.org/
Source: https://github.com/Gnucash/gnucash/releases/download/%{version}/%{name}-%{version}.tar.bz2
Source1: %{name}-rpmlintrc
## Cpan-warning patch must always be applied.
# PATCH-FIX-UPSTREAM gnucash-cpan-warning.patch -- Add a warning about the danger of using gnc-fq-update to update the perl modules used by GnuCash.
Patch0: gnucash-cpan-warning.patch
# PATCH-FIX-UPSTREAM gnucash-libm.patch gh#gnucash/gnucash#632 dimstar@opensuse.org -- Link libm: gnucash uses e.g. log10 without explicitly requesting libm
Patch1: gnucash-libm.patch
Patch2: gnucash-4.1-fix-gtest-path.patch
Patch3: gnucash-icu.patch
Patch4: gnucash-swig43.patch
BuildRequires: cmake >= 3.14
BuildRequires: doxygen
BuildRequires: fdupes
BuildRequires: gcc-c++
%if 0%{?suse_version} == 1500
BuildRequires: gcc13-PIE
BuildRequires: gcc13-c++
%endif
BuildRequires: gmock >= 1.8.0
BuildRequires: gtest >= 1.8.0
BuildRequires: guile-devel
BuildRequires: libboost_date_time-devel-impl >= 1.67.0
BuildRequires: libboost_filesystem-devel-impl >= 1.67.0
BuildRequires: libboost_headers-devel-impl >= 1.67.0
BuildRequires: libboost_locale-devel-impl >= 1.67.0
BuildRequires: libboost_program_options-devel-impl >= 1.67.0
BuildRequires: libboost_regex-devel-impl >= 1.67.0
BuildRequires: libboost_system-devel-impl >= 1.67.0
BuildRequires: libdbi-drivers-dbd-sqlite3
BuildRequires: libicu-devel
BuildRequires: makeinfo
BuildRequires: ninja
BuildRequires: pkgconfig
%if %{with python}
BuildRequires: python3-devel >= 3.8
%endif
BuildRequires: swig >= 3.0.12
BuildRequires: xsltproc
BuildRequires: pkgconfig(aqbanking) >= 6.0.0
BuildRequires: pkgconfig(dbi) >= 0.8.3
BuildRequires: pkgconfig(gdk-pixbuf-2.0)
BuildRequires: pkgconfig(gio-2.0)
BuildRequires: pkgconfig(glib-2.0) >= 2.56.1
BuildRequires: pkgconfig(gmodule-2.0) >= 2.40
BuildRequires: pkgconfig(gnome-keyring-1) >= 0.6
BuildRequires: pkgconfig(gobject-2.0) >= 2.40
BuildRequires: pkgconfig(gthread-2.0) >= 2.40
BuildRequires: pkgconfig(gtk+-3.0) >= 3.22.29
BuildRequires: pkgconfig(gwenhywfar) >= 3.99.20
BuildRequires: pkgconfig(icu-i18n)
BuildRequires: pkgconfig(icu-uc)
BuildRequires: pkgconfig(ktoblzcheck)
BuildRequires: pkgconfig(libglade-2.0)
BuildRequires: pkgconfig(libofx) >= 0.9.0
BuildRequires: pkgconfig(libsecret-1) >= 0.18
BuildRequires: pkgconfig(libxml-2.0) >= 2.9.4
BuildRequires: pkgconfig(libxslt)
BuildRequires: pkgconfig(webkit2gtk-4.1)
Recommends: %{name}-docs
# For translation of currency names
Recommends: iso-codes
%if %{with python}
Recommends: python3-gnucash = %{version}
%endif
# Optional perl modules for online price retrieval
Recommends: perl(Date::Manip)
Recommends: yelp
Recommends: perl(Finance::Quote)
BuildRequires: pkgconfig(gwengui-gtk3)
%description
GnuCash is a personal finance manager. A check book-like register GUI
allows you to enter and track bank accounts, stocks, income, and even
currency trades.
Feature Highlights:
* Double-Entry Accounting;
* Stock/Bond/Mutual Fund Accounts;
* Small-Business Accounting;
* Reports, Graphs;
* QIF/OFX/HBCI Import, Transaction Matching;
* Scheduled Transactions;
* Financial Calculations.
%if %{with python}
%package -n python3-gnucash
Summary: Python bindings for GnuCash
Group: Development/Libraries/Python
Requires: %{name} = %{version}
%description -n python3-gnucash
This package provides the Python 3 bindings for development of GnuCash,
a personal finance manager.
%endif
%package devel
Summary: Development files for GnuCash
Group: Development/Libraries/C and C++
Requires: %{name} = %{version}
%description devel
This package provides all the necessary files for development of GnuCash,
a personal finance manager.
%lang_package
%prep
%autosetup -p1 -n %{name}-%{version}
%build
%define _lto_cflags %{nil}
%define __builder ninja
%if 0%{?suse_version} == 1500
export CXX=g++-13
%endif
%cmake \
-DCMAKE_SKIP_INSTALL_RPATH:BOOL=OFF \
-DCMAKE_SKIP_RPATH=OFF \
-DCMAKE_BUILD_WITH_INSTALL_RPATH=ON \
-DCMAKE_INSTALL_DOCDIR=%{_docdir}/%{name} \
-DGMOCK_ROOT=%{_includedir}/gmock \
-DGTEST_ROOT=%{_includedir}/gtest \
%if %{with python}
-DWITH_PYTHON=ON \
%else
-DWITH_PYTHON=OFF \
%endif
-DCOMPILE_GSCHEMAS=OFF \
-DCMAKE_CXX_FLAGS=-Wno-error
%cmake_build
%install
%cmake_install
%find_lang %{name} %{?no_lang_C}
%fdupes %{buildroot}%{_libdir}
%fdupes %{buildroot}%{_datadir}
# Remove MS-Windows-related files and auto-installed LICENSE file
rm %{buildroot}%{_docdir}/%{name}/LICENSE
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
%files
%license LICENSE
%{_bindir}/gnc-fq-*
%{_bindir}/finance-quote-wrapper
%{_bindir}/gnucash
%{_bindir}/gnucash-cli
%{_bindir}/gnucash-valgrind
%dir %{_datadir}/metainfo
%{_datadir}/metainfo/gnucash.appdata.xml
%{_datadir}/applications/*.desktop
%{_datadir}/glib-2.0/schemas/org.gnucash.*.xml
%{_datadir}/gnucash/
%{_datadir}/icons/hicolor/*/apps/gnucash-icon.png
%{_datadir}/icons/hicolor/scalable/apps/gnucash-icon.svg
%dir %{_datadir}/guile/site/%{guile_version}
%{_datadir}/guile/site/%{guile_version}/gnucash
%doc %{_docdir}/%{name}
%{_libdir}/*.so
%{_libdir}/gnucash
%dir %{_libdir}/guile/%{guile_version}/site-ccache
%{_libdir}/guile/%{guile_version}/site-ccache/gnucash
%{_mandir}/man?/*%{?ext_man}
%dir %{_sysconfdir}/gnucash
%config %{_sysconfdir}/gnucash/environment
%exclude %{_datadir}/gnucash/python
%if %{with python}
%files -n python3-gnucash
%{_datadir}/gnucash/python
%dir %{python3_sitearch}/gnucash
%{python3_sitearch}/gnucash
%endif
%files devel
%doc ChangeLog README
%{_includedir}/gnucash/
%files lang -f %{name}.lang
%changelog