all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Josselin Poiret via Guix-patches via <guix-patches@gnu.org>
To: Josselin Poiret <dev@jpoiret.xyz>,
	Skylar Hill <stellarskylark@posteo.net>,
	61207@debbugs.gnu.org
Subject: [bug#61207] [PATCH v2] gnu: Add opentaxsolver.
Date: Fri,  3 Feb 2023 15:41:27 +0100	[thread overview]
Message-ID: <e2bb0c85a5d489a62f9970b42a774266124ec98a.1675435282.git.dev@jpoiret.xyz> (raw)
In-Reply-To: <87edr6x169.fsf@jpoiret.xyz>

From: Skylar Hill <stellarskylark@posteo.net>

---
 gnu/packages/finance.scm                      | 71 +++++++++++++++++++
 .../opentaxsolver-file-browser-fix.patch      | 58 +++++++++++++++
 2 files changed, 129 insertions(+)
 create mode 100644 gnu/packages/patches/opentaxsolver-file-browser-fix.patch

diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm
index c9c8e9b823..a2795c41f9 100644
--- a/gnu/packages/finance.scm
+++ b/gnu/packages/finance.scm
@@ -33,6 +33,7 @@
 ;;; Copyright © 2022 Collin J. Doering <collin@rekahsoft.ca>
 ;;; Copyright © 2022 Justin Veilleux <terramorpha@cock.li>
 ;;; Copyright © 2023 Frank Pursel <frank.pursel@gmail.com>
+;;; Copyright © 2023 Skylar Hill <stellarskylark@posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -2271,3 +2272,73 @@ (define-public p2pool
 Monero node and what it mines, but you get frequent payouts like on a regular
 pool.")
     (license license:gpl3)))
+
+(define-public opentaxsolver
+  ;; The OTS version is formatted like tax-year_version. So, at time of
+  ;; writing, the version is 2022_20.00. Each part of this is used in
+  ;; different places in the source uri, so it's convenient to have them
+  ;; separately like this.
+  (let ((tax-year "2022")
+        (ots-version "20.00"))
+    (package
+      (name "opentaxsolver")
+      (version (string-append tax-year "_" ots-version))
+      (source (origin
+                (method url-fetch)
+                (uri (string-append "mirror://sourceforge/opentaxsolver/OTS_"
+                                    tax-year
+                                    "/v"
+                                    ots-version
+                                    "_linux/OpenTaxSolver"
+                                    version
+                                    "_linux64.tgz"))
+                (sha256
+                 (base32
+                  "06k0a72bmwdmr71dvrp8b4vl8vilnggsh92hrp7wjdgcjj9m074w"))
+                (patches (search-patches
+                          "opentaxsolver-file-browser-fix.patch"))))
+      (build-system glib-or-gtk-build-system)
+      (arguments
+       (list #:phases #~(modify-phases %standard-phases
+                          (delete 'configure)
+                          ;; OTS does provide a shellscript that does exactly
+                          ;; this, but we need to do it ourselves to specify
+                          ;; the correct compiler and to delete the GUI
+                          ;; binaries.
+                          (replace 'build
+                            (lambda _
+                              (delete-file "Run_taxsolve_GUI")
+                              (delete-file-recursively "bin")
+                              (mkdir "bin")
+                              (chdir "src/Gui_gtk")
+                              (invoke "make"
+                                      (string-append "CC="
+                                                     #$(cc-for-target)))
+                              (chdir "..")
+                              (invoke "make"
+                                      (string-append "CC="
+                                                     #$(cc-for-target)))))
+                          (delete 'check)
+                          ;; OTS doesn't provide a `make install` target,
+                          ;; because it assumes it'll be run from the
+                          ;; tarball. So, we do it ourselves, making sure to
+                          ;; replicate the directory structure of the tarball.
+                          (replace 'install
+                            (lambda _
+                              (copy-recursively "../bin"
+                                                (string-append #$output "/bin"))
+                              (copy-recursively "../tax_form_files"
+                                                (string-append #$output
+                                                               "/tax_form_files"))
+                              (copy-recursively "formdata"
+                                                (string-append #$output
+                                                               "/src/formdata")))))))
+      (inputs (list gtk+-2))
+      (native-inputs (list pkg-config))
+      (synopsis "Yearly tax preparation tool")
+      (description
+       "OpenTaxSolver is a free, safe, and secure program for calculating tax form entries for federal and state personal income taxes.  It automatically fills out and prints your forms for mailing.
+
+Invoke with @code{ots_gui2} rather than the usual @code{Run_taxsolve_GUI}.")
+      (home-page "https://opentaxsolver.sourceforge.net/")
+      (license license:gpl2+))))
diff --git a/gnu/packages/patches/opentaxsolver-file-browser-fix.patch b/gnu/packages/patches/opentaxsolver-file-browser-fix.patch
new file mode 100644
index 0000000000..0e6be74f85
--- /dev/null
+++ b/gnu/packages/patches/opentaxsolver-file-browser-fix.patch
@@ -0,0 +1,58 @@
+From 96fda11a53a89c6647031f2c05ef12f1a9df6a08 Mon Sep 17 00:00:00 2001
+From: Skylar Hill <stellarskylark@posteo.net>
+Date: Tue, 31 Jan 2023 21:02:18 -0600
+Subject: [PATCH] Change default directory in file browser
+
+---
+ src/Gui_gtk/ots_gui2.c | 7 +++++--
+ 1 file changed, 5 insertions(+), 2 deletions(-)
+
+diff --git a/src/Gui_gtk/ots_gui2.c b/src/Gui_gtk/ots_gui2.c
+index ff3366b..1247933 100644
+--- a/src/Gui_gtk/ots_gui2.c
++++ b/src/Gui_gtk/ots_gui2.c
+@@ -82,6 +82,7 @@ char ots_release_package[]="20.00";
+ #include <string.h>
+ #include <stdlib.h>
+ #include <ctype.h>
++#include <unistd.h>
+ #include <sys/stat.h>
+ // #include "backcompat.c"
+ #include "gtk_utils.c"		/* Include the graphics library. */
+@@ -109,6 +110,7 @@ char toolpath[MaxFname]="", *start_cmd;
+ int pending_compute=0, supported_pdf_form=1;
+ int filingstatus_mfj=1;
+ int round_to_whole_nums=0;
++char *working_dir[MaxFname+512];
+ 
+ void pick_file( GtkWidget *wdg, void *data );	/* Prototype */
+ void consume_leading_trailing_whitespace( char *line );
+@@ -2364,7 +2366,7 @@ void save_taxfile( GtkWidget *wdg, void *data )
+  if (cpt != 0)
+   strcpy( cpt, "_xxxx.txt" );
+  // printf("OTS_save_taxfile: dir='%s', wc='%s', fname='%s'\n", directory_dat, wildcards_fb, filename_fb );
+- Browse_Files( "File to Save As:", 2048, directory_dat, wildcards_fb, filename_fb, Save_Tax_File );
++ Browse_Files( "File to Save As:", 2048, working_dir, wildcards_fb, filename_fb, Save_Tax_File );
+ }
+ 
+ 
+@@ -3878,7 +3880,7 @@ void pick_file( GtkWidget *wdg, void *data )
+   strcpy( wildcards_fb, ".txt" );
+   strcpy( filename_fb, "" );
+   // printf("OTS_pick_file: dir='%s', wc='%s', fname='%s'\n", directory_dat, wildcards_fb, filename_fb );
+-  Browse_Files( "Select File", 2048, directory_dat, wildcards_fb, filename_fb, receive_filename );
++  Browse_Files( "Select File", 2048, working_dir, wildcards_fb, filename_fb, receive_filename );
+ }
+ 
+ 
+@@ -4019,6 +4021,7 @@ int main(int argc, char *argv[] )
+  invocation_path[k] = '\0';
+  // printf("Invocation path = '%s'\n", invocation_path);
+  set_ots_path();
++ getcwd(working_dir, MaxFname+512);
+ 
+  /* Decode any command-line arguments. */
+  argn = 1;  k=1;
+-- 
+2.38.1
+

base-commit: c19cd9f9470a8d60f8c1f8e0ff26b9cdb0e083ad
-- 
2.39.1





  reply	other threads:[~2023-02-03 14:42 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-02-01  4:44 [bug#61207] [PATCH] gnu: Add opentaxsolver Skylar Hill
2023-02-02 18:31 ` Josselin Poiret via Guix-patches via
     [not found]   ` <87y1pfg5pk.fsf@posteo.net>
2023-02-03 14:40     ` Josselin Poiret via Guix-patches via
2023-02-03 14:41       ` Josselin Poiret via Guix-patches via [this message]
2023-02-11 22:07         ` [bug#61207] [PATCH v2] " Nicolas Goaziou
2023-02-13  3:01           ` Skylar Hill
2023-02-13  3:26             ` Skylar Hill
2023-02-18 11:46               ` bug#61207: " Nicolas Goaziou
2023-02-13  3:16           ` [bug#61207] [PATCH v3] " Skylar Hill

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=e2bb0c85a5d489a62f9970b42a774266124ec98a.1675435282.git.dev@jpoiret.xyz \
    --to=guix-patches@gnu.org \
    --cc=61207@debbugs.gnu.org \
    --cc=dev@jpoiret.xyz \
    --cc=stellarskylark@posteo.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.