commit:     7ee965bec1c14ce8c774150751a0da00ad403af2
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Wed Jan  7 08:16:23 2026 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Wed Jan  7 08:16:23 2026 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7ee965be

dev-libs/libofx: backport 2 fixes post-tag

Signed-off-by: Sam James <sam <AT> gentoo.org>

 dev-libs/libofx/files/libofx-0.10.9-curl.patch |  47 +++++
 dev-libs/libofx/files/libofx-0.10.9-dtd.patch  | 278 +++++++++++++++++++++++++
 dev-libs/libofx/libofx-0.10.9-r1.ebuild        |  61 ++++++
 3 files changed, 386 insertions(+)

diff --git a/dev-libs/libofx/files/libofx-0.10.9-curl.patch 
b/dev-libs/libofx/files/libofx-0.10.9-curl.patch
new file mode 100644
index 000000000000..e3b163f3a0e1
--- /dev/null
+++ b/dev-libs/libofx/files/libofx-0.10.9-curl.patch
@@ -0,0 +1,47 @@
+https://github.com/libofx/libofx/commit/601fda2b62eaad918acf1e64cef76d05c106657f
+
+From 601fda2b62eaad918acf1e64cef76d05c106657f Mon Sep 17 00:00:00 2001
+From: David Ward <[email protected]>
+Date: Mon, 16 Jan 2023 09:23:04 -0500
+Subject: [PATCH] Define HAVE_LIBCURL when using Autoconf
+
+Even if libcurl was available, the conditional code for ofxconnect
+that uses libcurl was not compiled, so that it was not possible to
+connect to an OFX server. (Also, correct a misspelling of "libofx"
+in the error message that was returned instead.)
+
+Fixes: 1b9e698000a2 ("Remove hand-written libcurl configure check,
+                      use pkg-config instead.")
+---
+ configure.ac              | 3 ++-
+ ofxconnect/ofxconnect.cpp | 2 +-
+ 2 files changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 167efaae..a449fcc3 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -292,7 +292,8 @@ AM_CONDITIONAL(HAVE_HELP2MAN, test "x$HELP2MAN" != "xno")
+ # ----------------------------------------------------------------------------
+ 
+ PKG_CHECK_MODULES(LIBCURL, libcurl >= 7.9.7,
+-        [libcurl_available=yes],
++        [libcurl_available=yes
++         AC_DEFINE(HAVE_LIBCURL, 1, [Defined if libcurl is available])],
+         [libcurl_available=no
+          AC_MSG_WARN([libcurl is not available. ofxconnect (Direct connect 
samples) will NOT be built.])
+         ])
+diff --git a/ofxconnect/ofxconnect.cpp b/ofxconnect/ofxconnect.cpp
+index 47cc926b..1438548c 100644
+--- a/ofxconnect/ofxconnect.cpp
++++ b/ofxconnect/ofxconnect.cpp
+@@ -85,7 +85,7 @@ bool post(const char* request, const char* url, const char* 
filename)
+ #else
+ bool post(const char*, const char*, const char*)
+ {
+-  std::cerr << "ERROR: libox must be configured with libcurl to post this 
request directly" << std::endl;
++  std::cerr << "ERROR: libofx must be configured with libcurl to post this 
request directly" << std::endl;
+   return false;
+ }
+ #endif
+

diff --git a/dev-libs/libofx/files/libofx-0.10.9-dtd.patch 
b/dev-libs/libofx/files/libofx-0.10.9-dtd.patch
new file mode 100644
index 000000000000..db359b90528c
--- /dev/null
+++ b/dev-libs/libofx/files/libofx-0.10.9-dtd.patch
@@ -0,0 +1,278 @@
+https://github.com/libofx/libofx/commit/ea5d1cb71a6319b689a87249d53c96f719821113
+
+From ea5d1cb71a6319b689a87249d53c96f719821113 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Benoit=20Gr=C3=A9goire?= <[email protected]>
+Date: Sun, 17 Dec 2023 10:47:36 -0500
+Subject: [PATCH] Revert "Fix typos in *.dtd files".  It changed some of the
+ enums.  Typos or not, it's part of the standard, and will break stuff that
+ use it.  The dtd files are suppoesed to be those published with the standard,
+ unmodified.
+
+This reverts commit 3d50f6bd70b29b049997d41471751f334109868a.
+---
+ dtd/ofc.dtd    | 36 ++++++++++++++++++------------------
+ dtd/ofx160.dtd | 14 +++++++-------
+ dtd/ofx201.dtd | 10 +++++-----
+ 3 files changed, 30 insertions(+), 30 deletions(-)
+
+diff --git a/dtd/ofc.dtd b/dtd/ofc.dtd
+index 58249fd8..0c9dfdb5 100644
+--- a/dtd/ofc.dtd
++++ b/dtd/ofc.dtd
+@@ -27,7 +27,7 @@
+       model. These entity tags will never occur 
+       in the OFC document instance itself.
+ 
+-      The formatting rules are described in the 
++      The formating rules are described in the 
+       OFC Build & Parse Specification, which
+       can be obtained from Microsoft.   
+ -->
+@@ -45,7 +45,7 @@
+ <!ENTITY % NUMSTR     "(#PCDATA)">
+ 
+ <!--  ID: Used for specifying a unique id.
+-      Must be composed of alphanumeric
++      Must be composed of alpha-numeric
+       characters. It may contain the 
+       following delimiters: ()-,.;:/\#
+       as well as spaces.
+@@ -110,7 +110,7 @@
+       If the user is new to the system, the response must 
+       contain values for OFC services available on this server, 
+       as well as the default days to pay and the default days 
+-      before withdrawal on new payees, when using the 
++      before withdrawl on new payees, when using the 
+       U.S. payment service model. The server returns 
+       the SESSKEY to be used during the next OFC HTTP session.
+ -->
+@@ -143,7 +143,7 @@
+ <!ELEMENT TRNRS               - o     (CLTID, STATUS, ERROR?,
+       (STMTRS | INTRARS | INTERRS | PAYMTRS | PAYIQRS)?)>
+ 
+-<!--  Account Statement: This is used for statement
++<!--  Account Statement: This is used for statment
+       downloads and file exchange. 
+ -->
+ <!ELEMENT ACCTSTMT    - o     (ACCTFROM, STMTRS)>
+@@ -153,7 +153,7 @@
+ <!--  ***************************************************************  -->
+ 
+ <!--  Account Transaction: Sent to enable or change services
+-      for a particular account belonging to a user.
++      for a paticular account belonging to a user.
+ -->
+ <!ELEMENT ACCTRQ      - o     (ACCTFROM, (SERVRQST+))>
+ <!ELEMENT ACCTRS      - o     (SERVAUTH+)>
+@@ -166,7 +166,7 @@
+ <!ELEMENT PAYEERS     - o     (PAYEEID, PAYEE?, DAYSREQD, DAYSWITH)>
+ 
+ <!--  Mail Transaction: Sent to inquire about 
+-      services for a particular account belonging to
++      services for a paticular account belonging to
+       a user.  
+ -->
+ <!ELEMENT MAILRQ      - o     (SERVICE, ACCTFROM?, (MEMO+))>
+@@ -191,7 +191,7 @@
+       an intra-bank transfer. If the server returns
+       a status indicating success, and no date/time
+       is specified, it will be assumed the funds are 
+-      immediately available. The user's account
++      immeadiately available. The user's account
+       must have been previously enabled for banking 
+       services using the ACCTRQ/ACCTRS transactions. 
+ -->
+@@ -204,7 +204,7 @@
+       an inter-bank transfer. If the server returns
+       a status indicating success, and no date/time
+       is specified, it will be assumed the funds are 
+-      immediately available. The user's account
++      immeadiately available. The user's account
+       must have been previously enabled for bill payment 
+       services using the ACCTRQ/ACCTRS transactions. 
+       The NAME and PAYACCT fields are for the "payee" 
+@@ -341,7 +341,7 @@
+       should verify that this is a crash recovery by
+       comparing the session key against the key of the
+       previous session. If the keys match, then it can be 
+-      assumed that the client did not receive the 
++      assumed that the client did not recieve the 
+       transaction response of the previous session, 
+       and return the response transactions of the previous
+       session. This key is always assigned by the
+@@ -395,7 +395,7 @@
+       1, request rejected 
+       2, account pending
+       3, account closed
+-      4, no CLTID (unsolicited transaction)
++      4, no CLTID (unsolicitied transaction)
+       5, password change required
+       
+       error status
+@@ -463,7 +463,7 @@
+       3, Money Market
+       4, Credit Line
+       5, Loan
+-      6, Inter-bank transfer payee
++      6, Inter-bank tranfer payee
+       7, Other
+ -->
+ <!ELEMENT ACCTTYPE    - o     %NUMSTR>
+@@ -477,11 +477,11 @@
+       3, Dividend
+       4, Service Charge
+       5, Deposit
+-      6, ATM Withdrawal
++      6, ATM Withdrawl
+       7, Transfer
+       8, Check
+       9, Electronic Payment
+-      10, Cash Withdrawal
++      10, Cash Withdrawl
+       11, Electronic Payroll Deposit
+       12, Other
+ -->
+@@ -509,7 +509,7 @@
+ -->
+ <!ELEMENT DAYSREQD    - o     %NUMSTR>
+ 
+-<!--  Withdrawal date: Used for specifying the number of 
++<!--  Withdrawl date: Used for specifying the number of 
+       days before funds will be withdarwn from a user's 
+       account prior to the due date of the payment.
+ -->
+@@ -550,13 +550,13 @@
+ 
+ <!--  Service: Used for specifying a service.
+       These services are either banking services,
+-      or billpayment services.
++      or billpayment services.  
+ 
+       0, Banking Services
+       1, Billpay Services (Service Model)
+-      2. Payee Id/Acct Info (Interbank Transfer Model)
+-      3. Payee Id Only (Interbank Transfer Model)
+-      4. Acct Info Only (Interbank Transfer Model)
++      2. Payee Id/Acct Info (Interbank Tranfer Model)  
++      3. Payee Id Only (Interbank Tranfer Model)  
++      4. Acct Info Only (Interbank Tranfer Model)  
+ -->
+ <!ELEMENT SERVICE     - o     %NUMSTR>
+ 
+diff --git a/dtd/ofx160.dtd b/dtd/ofx160.dtd
+index 5d9dda3a..331d3749 100644
+--- a/dtd/ofx160.dtd
++++ b/dtd/ofx160.dtd
+@@ -265,7 +265,7 @@
+ <!ENTITY % EXTDPMTFORENUM "(#PCDATA)">
+ <!--#ENTITY % EXTDPMTFORENUM          #Enum("INDIVIDUAL","BUSINESS")-->
+ <!ENTITY % COUPONFREQENUM "(#PCDATA)">
+-<!--#ENTITY % COUPONFREQENUM          
#Enum("MONTHLY","QUARTERLY","SEMIANNUALLY","ANNUALLY","OTHER")-->
++<!--#ENTITY % COUPONFREQENUM          
#Enum("MONTHLY","QUARTERLY","SEMIANNUALLY","ANUALLY","OTHER")-->
+ <!ENTITY % CHARTYPEENUM "(#PCDATA)">
+ <!--#ENTITY % CHARTYPEENUM            
#Enum("ALPHAONLY","NUMERICONLY","ALPHAORNUMERIC","ALPHAANDNUMERIC")-->
+ <!ENTITY % BALANCEENUM "(#PCDATA)">
+@@ -276,7 +276,7 @@
+ <!--#ENTITY % ACCOUNTENUM2            
#Enum("CHECKING","SAVINGS","MONEYMRKT","CREDITLINE","CMA")-->
+ <!ENTITY % FREQENUM "(#PCDATA)">
+ <!--#ENTITY % FREQENUM                        
#Enum("WEEKLY","BIWEEKLY","TWICEMONTHLY","MONTHLY","FOURWEEKS","BIMONTHLY",
+-                                                      
"QUARTERLY","SEMIANNUALLY","TRIANNUALLY","ANNUALLY")-->
++                                                      
"QUARTERLY","SEMIANNUALLY","TRIANNUALLY","ANUALLY")-->
+ <!ENTITY % DAYSENUM "(#PCDATA)">
+ <!--#ENTITY % DAYSENUM                        
#Enum("MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY",
+                                                       "SATURDAY","SUNDAY")-->
+@@ -859,7 +859,7 @@
+ <!--#ELEMENT STPCHKSYNCRQ #Link(TOKEN2,BANKMSGSRQV2)-->
+ 
+ 
+-<!-- intrabank transfer synchronization request, v2 adds ccacctfrom -->
++<!-- intrabank transfer sychronization request, v2 adds ccacctfrom -->
+ <!-- OFX 1.5 -->
+ <!-- FROM BANKACCTFROM to (BANKACCTFROM | CCACCTFROM) -->
+ <!ELEMENT INTRASYNCRQ - - (%SYNCRQMACRO , (BANKACCTFROM | CCACCTFROM), 
INTRATRNRQ*)>
+@@ -1398,7 +1398,7 @@
+ <!ELEMENT DFLTDAYSTOPAY - o %DAYSPANTYPE>               <!--  the default 
number of days to pay -->
+ <!ELEMENT XFERDAYSWITH          - o     %DAYSPANTYPE>       <!--  number of 
days before the processing date that funds are withdrawn for xfers-->
+ <!ELEMENT XFERDFLTDAYSTOPAY     - o %DAYSPANTYPE>   <!--  the default number 
of days to pay for transfers-->
+-<!ELEMENT POSTPROCWND   - o     %DAYSPANTYPE>       <!--  the number of days 
after a transaction is processed that it is accessible
++<!ELEMENT POSTPROCWND   - o     %DAYSPANTYPE>       <!--  the number of days 
after a transaction is processed that it is acessible
+                                                                               
            for status inquiries -->
+ <!ELEMENT STSVIAMODS    - o     %BOOLTYPE>      <!--  server supports 
communication of server-initiated payment status changes
+                                                                               
            via the PMTMODRS -->
+@@ -2288,7 +2288,7 @@
+ <!ELEMENT INVSTMTRS  - - (DTASOF , CURDEF , INVACCTFROM , INVTRANLIST? ,
+                INVPOSLIST? , INVBAL? , INVOOLIST? ,  MKTGINFO?) >
+ 
+-<!-- Marketing Message -->
++<!-- Marketing Mesage -->
+ <!ELEMENT MKTVAL  - O %AMTTYPE >
+ 
+ <!-- ** Transaction List ** -->
+@@ -2493,7 +2493,7 @@
+ 
+ <!ELEMENT DENOMINATOR  - O %AMTTYPE >
+ 
+-<!-- Amount of cash received from fractional shares -->
++<!-- Amount of cash recieved from fractional shares -->
+ <!ELEMENT FRACCASH  - O %AMTTYPE >
+ 
+ <!-- ** Transfer Transaction ** -->
+@@ -3045,7 +3045,7 @@
+                    )">
+ 
+ <!-- OFX 1.6 correction: Disallow an empty <MSGSETLIST> by requiring one or
+-     more occurrences of the %MSGSETMACRO contents.
++     more occurances of the %MSGSETMACRO contents.
+      Also, make <SIGNONMSGSET> and <PROFMSGSET> required. -->
+ <!ELEMENT MSGSETLIST    - - (
+     ((( SIGNONMSGSET, (%MSGSETMACRO)+, PROFMSGSET ) |
+diff --git a/dtd/ofx201.dtd b/dtd/ofx201.dtd
+index 4ab38319..01e34620 100644
+--- a/dtd/ofx201.dtd
++++ b/dtd/ofx201.dtd
+@@ -581,7 +581,7 @@ Revisions 031000 Tom Lebhar
+ 
+ <!ENTITY % COUPONFREQENUM "(#PCDATA)">
+ 
+-<!--#ENTITY % COUPONFREQENUM          
#Enum("MONTHLY","QUARTERLY","SEMIANNUALLY","ANNUALLY","OTHER")-->
++<!--#ENTITY % COUPONFREQENUM          
#Enum("MONTHLY","QUARTERLY","SEMIANNUALLY","ANUALLY","OTHER")-->
+ 
+ <!ENTITY % CHARTYPEENUM "(#PCDATA)">
+ 
+@@ -605,7 +605,7 @@ Revisions 031000 Tom Lebhar
+ 
+ <!--#ENTITY % FREQENUM                        
#Enum("WEEKLY","BIWEEKLY","TWICEMONTHLY","MONTHLY","FOURWEEKS","BIMONTHLY",
+ 
+-                                                      
"QUARTERLY","SEMIANNUALLY","TRIANNUALLY","ANNUALLY")-->
++                                                      
"QUARTERLY","SEMIANNUALLY","TRIANNUALLY","ANUALLY")-->
+ 
+ <!ENTITY % DAYSENUM "(#PCDATA)">
+ 
+@@ -1771,7 +1771,7 @@ Revisions 031000 Tom Lebhar
+ <!-- The default njumber of days to pay for transfers -->
+ <!ELEMENT XFERDFLTDAYSTOPAY          %DAYSPANTYPE;>
+ 
+-<!--  The number of days after a transaction is processed that it is 
accessible for status inquiries -->
++<!--  The number of days after a transaction is processed that it is 
acessible for status inquiries -->
+ <!ELEMENT POSTPROCWND                %DAYSPANTYPE;>       
+ 
+ <!--  server supports communication of server-initiated payment status 
changes via the PMTMODRS -->
+@@ -2810,7 +2810,7 @@ Revisions 031000 Tom Lebhar
+ 
+ <!ELEMENT DENOMINATOR   %AMTTYPE; >
+ 
+-<!-- Amount of cash received from fractional shares -->
++<!-- Amount of cash recieved from fractional shares -->
+ 
+ <!ELEMENT FRACCASH   %AMTTYPE; >
+ 
+@@ -4545,7 +4545,7 @@ Revisions 031000 Tom Lebhar
+ 
+ <!ELEMENT INTINCOME         %AMTTYPE;>
+ 
+-<!-- Early withdrawal penalty, amount                                         
 -->    
++<!-- Early withdrawl penalty, amount                                          
-->     
+ 
+ <!ELEMENT ERLWITHPEN          %AMTTYPE;>
+ 
+

diff --git a/dev-libs/libofx/libofx-0.10.9-r1.ebuild 
b/dev-libs/libofx/libofx-0.10.9-r1.ebuild
new file mode 100644
index 000000000000..7a7889b55c5f
--- /dev/null
+++ b/dev-libs/libofx/libofx-0.10.9-r1.ebuild
@@ -0,0 +1,61 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools flag-o-matic
+
+DESCRIPTION="Library to support the Open Financial eXchange XML format"
+HOMEPAGE="https://github.com/libofx/libofx";
+SRC_URI="https://github.com/libofx/libofx/releases/download/${PV}/${P}.tar.gz";
+
+LICENSE="GPL-2"
+SLOT="0/10"
+KEYWORDS="~amd64 ~arm64 ~ppc ~ppc64 ~riscv ~x86"
+IUSE="doc test"
+RESTRICT="!test? ( test )"
+
+BDEPEND="
+       dev-util/gengetopt
+       sys-apps/help2man
+       virtual/pkgconfig
+       doc? ( app-text/doxygen )
+       test? ( app-crypt/gnupg )
+"
+RDEPEND="
+       >app-text/opensp-1.5
+       app-text/openjade
+       >=dev-cpp/libxmlpp-2.40.1:2.6
+       >=net-misc/curl-7.9.7
+       virtual/libiconv
+"
+DEPEND="${RDEPEND}"
+
+PATCHES=(
+       "${FILESDIR}"/${P}-curl.patch
+       "${FILESDIR}"/${P}-dtd.patch
+)
+
+src_prepare() {
+       default
+       # curl.patch
+       eautoreconf
+}
+
+src_configure() {
+       # bug #566456
+       append-cxxflags -std=c++14
+
+       econf $(use_enable doc html-docs)
+}
+
+src_compile() {
+       emake all $(usev doc)
+}
+
+src_install() {
+       default
+
+       find "${ED}" -name '*.la' -type f -delete || die
+       find "${ED}" -name '*.a' -type f -delete || die
+}

Reply via email to