* [bug#61207] [PATCH] gnu: Add opentaxsolver. @ 2023-02-01 4:44 Skylar Hill 2023-02-02 18:31 ` Josselin Poiret via Guix-patches via 0 siblings, 1 reply; 9+ messages in thread From: Skylar Hill @ 2023-02-01 4:44 UTC (permalink / raw) To: 61207 [-- Attachment #1: Type: text/plain, Size: 531 bytes --] Hello, everyone, With tax season coming up in the US, I wanted to use OpenTaxSolver to prepare my tax return. However, it wasn't packaged on Guix! OTS assumes it'll be run directly from an unpacked tarball, so a patch is also included to fix some of the issues that causes (namely that an unmodified build will try to save files to the store instead of the user's home directory). This is my first time trying to package something for Guix, so if there are any glaring issues or mistakes here, please let me know! Skylar Hill [-- Attachment #2: gnu: Add opentaxsolver. --] [-- Type: text/plain, Size: 8013 bytes --] From ec431fbcc49c8bb57ea6c11bb3fb4f5a93aa1a10 Mon Sep 17 00:00:00 2001 From: Skylar Hill <stellarskylark@posteo.net> Date: Tue, 31 Jan 2023 22:30:25 -0600 Subject: [PATCH] gnu: Add opentaxsolver. * gnu/packages/opentaxsolver.scm (opentaxsolver): New variable. --- gnu/packages/opentaxsolver.scm | 94 +++++++++++++++++++ .../opentaxsolver-file-browser-fix.patch | 58 ++++++++++++ 2 files changed, 152 insertions(+) create mode 100644 gnu/packages/opentaxsolver.scm create mode 100644 gnu/packages/patches/opentaxsolver-file-browser-fix.patch diff --git a/gnu/packages/opentaxsolver.scm b/gnu/packages/opentaxsolver.scm new file mode 100644 index 0000000000..85ba40a2ea --- /dev/null +++ b/gnu/packages/opentaxsolver.scm @@ -0,0 +1,94 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2023 Skylar Hill <stellarskylark@posteo.net> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix 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 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix 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 GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gnu packages opentaxsolver) + #:use-module (gnu packages) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system glib-or-gtk) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (gnu packages gcc) + #:use-module (gnu packages gtk) + #:use-module (gnu packages pkg-config)) + +;; The version number seems to consist of two separate parts, a typical +;; version number (ots-version) and a tax year. At time of writing, the +;; version is 2022_20.00. Both parts are used separately in the tarball uri, +;; it is convenient to define both as separate variables. + +(define tax-year "2022") +(define ots-version "20.00") + +(define-public opentaxsolver + (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 + '(#:phases (modify-phases %standard-phases + (delete 'configure) + (replace 'build + (lambda _ + ;; The provided Build_taxsolve_packages.sh would do this, but + ;; then we can't configure CC=gcc in the make calls, which + ;; errors. Also, the provided `make clean` doesn't delete the + ;; GUI. + (delete-file "Run_taxsolve_GUI") + (delete-file-recursively "bin") + (mkdir "bin") + (chdir "src/Gui_gtk") + (invoke "make" "CC=gcc") + (chdir "..") + (invoke "make" "CC=gcc"))) + (delete 'check) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin"))) + ;; OTS was designed to be run straight out of the unpacked + ;; tarball. Thus, the installation procedure is extremely + ;; cursed. Also note we don't use the provided + ;; Run_taxsolve_GUI because it's pointless in this context. + (copy-recursively "../bin" bin) + (copy-recursively "../tax_form_files" + (string-append out "/tax_form_files")) + (copy-recursively "formdata" + (string-append out "/src/formdata")))))))) + (inputs (list (specification->package "gtk+@2"))) + (native-inputs (list gcc 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 + -- 2.38.1 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* [bug#61207] [PATCH] gnu: Add opentaxsolver. 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> 0 siblings, 1 reply; 9+ messages in thread From: Josselin Poiret via Guix-patches via @ 2023-02-02 18:31 UTC (permalink / raw) To: Skylar Hill, 61207 Hi Skylar, Skylar Hill <stellarskylark@posteo.net> writes: > Hello, everyone, > > With tax season coming up in the US, I wanted to use OpenTaxSolver to > prepare my tax return. However, it wasn't packaged on Guix! > > OTS assumes it'll be run directly from an unpacked tarball, so a patch > is also included to fix some of the issues that causes (namely that an > unmodified build will try to save files to the store instead of the > user's home directory). > > This is my first time trying to package something for Guix, so if there > are any glaring issues or mistakes here, please let me know! Thanks for your work! Adding a new package is a great first contribution. Here are some suggestions: > Skylar Hill > > From ec431fbcc49c8bb57ea6c11bb3fb4f5a93aa1a10 Mon Sep 17 00:00:00 2001 > From: Skylar Hill <stellarskylark@posteo.net> > Date: Tue, 31 Jan 2023 22:30:25 -0600 > Subject: [PATCH] gnu: Add opentaxsolver. > > * gnu/packages/opentaxsolver.scm (opentaxsolver): New variable. > --- > gnu/packages/opentaxsolver.scm | 94 +++++++++++++++++++ > .../opentaxsolver-file-browser-fix.patch | 58 ++++++++++++ > 2 files changed, 152 insertions(+) > create mode 100644 gnu/packages/opentaxsolver.scm We don't usually create new files for specific packages. I'd suggest putting this definition into finance.scm. > create mode 100644 gnu/packages/patches/opentaxsolver-file-browser-fix.patch > [...] > + > +;; The version number seems to consist of two separate parts, a typical > +;; version number (ots-version) and a tax year. At time of writing, the > +;; version is 2022_20.00. Both parts are used separately in the tarball uri, > +;; it is convenient to define both as separate variables. > + > +(define tax-year "2022") > +(define ots-version "20.00") > + > +(define-public opentaxsolver What I would do here instead would be to let-bind tax-year and ots-version in the body of the define-public clause, so that it's only defined there. > + (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 > + '(#:phases (modify-phases %standard-phases > + (delete 'configure) > + (replace 'build > + (lambda _ > + ;; The provided Build_taxsolve_packages.sh would do this, but > + ;; then we can't configure CC=gcc in the make calls, which > + ;; errors. Also, the provided `make clean` doesn't delete the > + ;; GUI. > + (delete-file "Run_taxsolve_GUI") > + (delete-file-recursively "bin") > + (mkdir "bin") > + (chdir "src/Gui_gtk") > + (invoke "make" "CC=gcc") Here, you shouldn't directly talk about gcc, since the compiler name might be different when cross-compiling. We have a procedure for that, cc-for-target, an example use would be (invoke "make" (string-append "CC=" ,(cc-for-target))), but you would need to replace the quote '(#:phases ...) to a quasiquote `(#:phases ...). You should have a look at quote and quasiquote in the Guile info manual, node "Expression Syntax". By the way, we now use g-expressions instead of s-expressions for phases, but that might be too big of a commitment for a first contribution. Someone else can adjust that part after these changes. You can still have a look in the Guix manual for the G-Expressions node if you're so inclined. > + (chdir "..") > + (invoke "make" "CC=gcc"))) Ditto. > + (delete 'check) > + (replace 'install > + (lambda* (#:key outputs #:allow-other-keys) > + (let* ((out (assoc-ref outputs "out")) > + (bin (string-append out "/bin"))) > + ;; OTS was designed to be run straight out of the unpacked > + ;; tarball. Thus, the installation procedure is extremely > + ;; cursed. Also note we don't use the provided > + ;; Run_taxsolve_GUI because it's pointless in this context. > + (copy-recursively "../bin" bin) > + (copy-recursively "../tax_form_files" > + (string-append out "/tax_form_files")) > + (copy-recursively "formdata" > + (string-append out "/src/formdata")))))))) > + (inputs (list (specification->package "gtk+@2"))) You shouldn't use specification->package in package definitions, as that's pretty costly (it needs to scan the whole package list for it). You should instead make the package variable available itself by using (#:use-module (gnu packages gtk)), and use the variable gtk+-2. > + (native-inputs (list gcc pkg-config)) There's no need to add gcc to the list of native-inputs, it is included by most build systems, glib-or-gtk included. > + (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 > + > -- > 2.38.1 > Best, -- Josselin Poiret ^ permalink raw reply [flat|nested] 9+ messages in thread
[parent not found: <87y1pfg5pk.fsf@posteo.net>]
* [bug#61207] [PATCH] gnu: Add opentaxsolver. [not found] ` <87y1pfg5pk.fsf@posteo.net> @ 2023-02-03 14:40 ` Josselin Poiret via Guix-patches via 2023-02-03 14:41 ` [bug#61207] [PATCH v2] " Josselin Poiret via Guix-patches via 0 siblings, 1 reply; 9+ messages in thread From: Josselin Poiret via Guix-patches via @ 2023-02-03 14:40 UTC (permalink / raw) To: Skylar Hill, 61207 Hi Skylar, Skylar Hill <stellarskylark@posteo.net> writes: > Thanks, Josselin! Here's an updated patch including the requested > changes. I also took a crack at switching over to G-expressions -- let > me know if I need to fix anything on that front to match best practices > or fully take advantage of the construct. > > Skylar Hill > > [...] Thanks for the quick changes, this looks really good, although you forgot to reply to the bug email address! I've added it again and will resend the patch, I've only removed one extra whitespace and rebased on top of master (there is a new copyright line where you added yours). I am no committer though so someone else will have to look at this, and there might be an issue with the license, although I'm no expert: I see some files with a GPLv2 header, another with a LGPLv2 header, some with none. Also, it's good practice to include the fact that it's the second version of a patch by adding --reroll-count=2 (shortened -v 2) to git format/send-patch, and also adding the base commit you're using using --base=auto. Best, -- Josselin Poiret ^ permalink raw reply [flat|nested] 9+ messages in thread
* [bug#61207] [PATCH v2] gnu: Add opentaxsolver. 2023-02-03 14:40 ` Josselin Poiret via Guix-patches via @ 2023-02-03 14:41 ` Josselin Poiret via Guix-patches via 2023-02-11 22:07 ` Nicolas Goaziou 0 siblings, 1 reply; 9+ messages in thread From: Josselin Poiret via Guix-patches via @ 2023-02-03 14:41 UTC (permalink / raw) To: Josselin Poiret, Skylar Hill, 61207 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 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* [bug#61207] [PATCH v2] gnu: Add opentaxsolver. 2023-02-03 14:41 ` [bug#61207] [PATCH v2] " Josselin Poiret via Guix-patches via @ 2023-02-11 22:07 ` Nicolas Goaziou 2023-02-13 3:01 ` Skylar Hill 2023-02-13 3:16 ` [bug#61207] [PATCH v3] " Skylar Hill 0 siblings, 2 replies; 9+ messages in thread From: Nicolas Goaziou @ 2023-02-11 22:07 UTC (permalink / raw) To: 61207; +Cc: dev, stellarskylark Hello, Josselin Poiret via Guix-patches via <guix-patches@gnu.org> writes: > From: Skylar Hill <stellarskylark@posteo.net> Thanks to both of you. > > + (source (origin > + (method url-fetch) > + (uri (string-append "mirror://sourceforge/opentaxsolver/OTS_" > + tax-year > + "/v" > + ots-version > + "_linux/OpenTaxSolver" > + version > + "_linux64.tgz")) Formatting needs some love here. > + (sha256 > + (base32 > + "06k0a72bmwdmr71dvrp8b4vl8vilnggsh92hrp7wjdgcjj9m074w")) > + (patches (search-patches > + "opentaxsolver-file-browser-fix.patch")))) This file needs to be registered in gnu/local.mk file. > + (build-system glib-or-gtk-build-system) > + (arguments > + (list #:phases #~(modify-phases %standard-phases (list #:phases #~(...)) > + (delete 'check) There are no tests. You need to use #:tests? keyword instead. > + (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. I suggest to remove "free, safe, and secure". Description needs to be filled, too. > +Invoke with @code{ots_gui2} rather than the usual > @code{Run_taxsolve_GUI}.") Note that it is possible to create a symlink to reintroduce Run_taxsolve_GUI. > + (license license:gpl2+)))) I agree with Josselin. Licensing is unclear. Many files do not have a license, or are "user contributed" (under what terms?). Would it be possible to clarify this with upstream? Regards, -- Nicolas Goaziou ^ permalink raw reply [flat|nested] 9+ messages in thread
* [bug#61207] [PATCH v2] gnu: Add opentaxsolver. 2023-02-11 22:07 ` Nicolas Goaziou @ 2023-02-13 3:01 ` Skylar Hill 2023-02-13 3:26 ` Skylar Hill 2023-02-13 3:16 ` [bug#61207] [PATCH v3] " Skylar Hill 1 sibling, 1 reply; 9+ messages in thread From: Skylar Hill @ 2023-02-13 3:01 UTC (permalink / raw) To: Nicolas Goaziou; +Cc: dev, 61207 [-- Attachment #1: Type: text/plain, Size: 740 bytes --] Thanks, y'all! I've attached a patch that addresses everything Nicolas brought up. > I agree with Josselin. Licensing is unclear. Many files do not have > a license, or are "user contributed" (under what terms?). > > Would it be possible to clarify this with upstream? I got a hold of Aston Roberts <aston_roberts@yahoo.com>, the maintainer for OTS, and asked him about the licensing for files without headers. (The tax templates, in particular, seem to lack headers because the custom markup doesn't appear to have comment syntax.) He answered: > Yes, all files of OTS are released under GNU GPL license. > Will review the file headers. So it looks like all the files, even the ones without a clear license header, are GPL. Skylar [-- Attachment #2: Patch version three --] [-- Type: text/plain, Size: 7650 bytes --] From f5f2b8b4539d48b474b131ece87b65dbfd9b2532 Mon Sep 17 00:00:00 2001 From: Skylar Hill <stellarskylark@posteo.net> Date: Sun, 12 Feb 2023 20:47:23 -0600 Subject: [PATCH v3] gnu: Add opentaxsolver --- gnu/local.mk | 1 + gnu/packages/finance.scm | 71 +++++++++++++++++++ .../opentaxsolver-file-browser-fix.patch | 58 +++++++++++++++ 3 files changed, 130 insertions(+) create mode 100644 gnu/packages/patches/opentaxsolver-file-browser-fix.patch diff --git a/gnu/local.mk b/gnu/local.mk index cdb99813d0..148bd6e908 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1616,6 +1616,7 @@ dist_patch_DATA = \ %D%/packages/patches/opensles-add-license-file.patch \ %D%/packages/patches/openssl-1.1-c-rehash-in.patch \ %D%/packages/patches/openssl-3.0-c-rehash-in.patch \ + %D%/packages/patches/opentaxsolver-file-browser-fix.patch \ %D%/packages/patches/open-zwave-hidapi.patch \ %D%/packages/patches/orpheus-cast-errors-and-includes.patch \ %D%/packages/patches/osip-CVE-2017-7853.patch \ diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm index c9c8e9b823..252f5e422c 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))))) + ;; 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")) + (symlink (string-append #$output "/bin/ots_gui2") + (string-append #$output "/bin/Run_taxsolve_GUI")) + (copy-recursively "../tax_form_files" + (string-append #$output + "/tax_form_files")) + (copy-recursively "formdata" + (string-append #$output + "/src/formdata"))))) + #:tests? #f)) + (inputs (list gtk+-2)) + (native-inputs (list pkg-config)) + (synopsis "Yearly tax preparation tool") + (description + "OpenTaxSolver is a program for calculating tax form entries for federal and +state personal income taxes. It automatically fills out and prints your forms +for mailing.") + (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 + -- 2.39.1 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* [bug#61207] [PATCH v2] gnu: Add opentaxsolver. 2023-02-13 3:01 ` Skylar Hill @ 2023-02-13 3:26 ` Skylar Hill 2023-02-18 11:46 ` bug#61207: " Nicolas Goaziou 0 siblings, 1 reply; 9+ messages in thread From: Skylar Hill @ 2023-02-13 3:26 UTC (permalink / raw) To: Nicolas Goaziou; +Cc: dev, 61207 Ahh okay had to disable the TLS guarantee on my Posteo account since apparently debbugs doesn't provide a TLS connection, which is why it was undeliverable. (Sorry for spamming you two but it should work this time.) Here's my original message: Thanks, y'all! I've attached a patch that addresses everything Nicolas brought up. I agree with Josselin. Licensing is unclear. Many files do not have a license, or are "user contributed" (under what terms?). Would it be possible to clarify this with upstream? I got a hold of Aston Roberts <aston_roberts@yahoo.com>, the maintainer for OTS, and asked him about the licensing for files without headers. (The tax templates, in particular, seem to lack headers because the custom markup doesn't appear to have comment syntax.) He answered: Yes, all files of OTS are released under GNU GPL license. Will review the file headers. So it looks like all the files, even the ones without a clear license header, are GPL. Skylar From f5f2b8b4539d48b474b131ece87b65dbfd9b2532 Mon Sep 17 00:00:00 2001 From: Skylar Hill <stellarskylark@posteo.net> Date: Sun, 12 Feb 2023 20:47:23 -0600 Subject: [PATCH v3] gnu: Add opentaxsolver --- gnu/local.mk | 1 + gnu/packages/finance.scm | 71 +++++++++++++++++++ .../opentaxsolver-file-browser-fix.patch | 58 +++++++++++++++ 3 files changed, 130 insertions(+) create mode 100644 gnu/packages/patches/opentaxsolver-file-browser-fix.patch diff --git a/gnu/local.mk b/gnu/local.mk index cdb99813d0..148bd6e908 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1616,6 +1616,7 @@ dist_patch_DATA = \ %D%/packages/patches/opensles-add-license-file.patch \ %D%/packages/patches/openssl-1.1-c-rehash-in.patch \ %D%/packages/patches/openssl-3.0-c-rehash-in.patch \ + %D%/packages/patches/opentaxsolver-file-browser-fix.patch \ %D%/packages/patches/open-zwave-hidapi.patch \ %D%/packages/patches/orpheus-cast-errors-and-includes.patch \ %D%/packages/patches/osip-CVE-2017-7853.patch \ diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm index c9c8e9b823..252f5e422c 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))))) + ;; 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")) + (symlink (string-append #$output "/bin/ots_gui2") + (string-append #$output "/bin/Run_taxsolve_GUI")) + (copy-recursively "../tax_form_files" + (string-append #$output + "/tax_form_files")) + (copy-recursively "formdata" + (string-append #$output + "/src/formdata"))))) + #:tests? #f)) + (inputs (list gtk+-2)) + (native-inputs (list pkg-config)) + (synopsis "Yearly tax preparation tool") + (description + "OpenTaxSolver is a program for calculating tax form entries for federal and +state personal income taxes. It automatically fills out and prints your forms +for mailing.") + (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 + ^ permalink raw reply related [flat|nested] 9+ messages in thread
* bug#61207: [PATCH v2] gnu: Add opentaxsolver. 2023-02-13 3:26 ` Skylar Hill @ 2023-02-18 11:46 ` Nicolas Goaziou 0 siblings, 0 replies; 9+ messages in thread From: Nicolas Goaziou @ 2023-02-18 11:46 UTC (permalink / raw) To: Skylar Hill; +Cc: dev, 61207-done Hello, Skylar Hill <stellarskylark@posteo.net> writes: > Subject: [PATCH v3] gnu: Add opentaxsolver I added a proper commit message and applied your patch, with slight fixes to indentation. > + (description > + "OpenTaxSolver is a program for calculating tax form entries for federal and > +state personal income taxes. It automatically fills out and prints your forms > +for mailing.") I added two spaces between sentences as requested by Texinfo syntax. Regards, -- Nicolas Goaziou ^ permalink raw reply [flat|nested] 9+ messages in thread
* [bug#61207] [PATCH v3] gnu: Add opentaxsolver. 2023-02-11 22:07 ` Nicolas Goaziou 2023-02-13 3:01 ` Skylar Hill @ 2023-02-13 3:16 ` Skylar Hill 1 sibling, 0 replies; 9+ messages in thread From: Skylar Hill @ 2023-02-13 3:16 UTC (permalink / raw) To: Nicolas Goaziou; +Cc: dev, 61207 [-- Attachment #1: Type: text/plain, Size: 358 bytes --] Oops, my last email came back undeliverable to the bug tracker address. Not sure why. As a summary, just in case this one manages to get through, the new patch addresses the issues Nicolas brought up, and I confirmed with Aston Roberts, the OTS maintainer, that everything is released under GPL. Here's the patch again, again just in case it gets through. [-- Attachment #2: Patch version 3 --] [-- Type: text/plain, Size: 7650 bytes --] From f5f2b8b4539d48b474b131ece87b65dbfd9b2532 Mon Sep 17 00:00:00 2001 From: Skylar Hill <stellarskylark@posteo.net> Date: Sun, 12 Feb 2023 20:47:23 -0600 Subject: [PATCH v3] gnu: Add opentaxsolver --- gnu/local.mk | 1 + gnu/packages/finance.scm | 71 +++++++++++++++++++ .../opentaxsolver-file-browser-fix.patch | 58 +++++++++++++++ 3 files changed, 130 insertions(+) create mode 100644 gnu/packages/patches/opentaxsolver-file-browser-fix.patch diff --git a/gnu/local.mk b/gnu/local.mk index cdb99813d0..148bd6e908 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1616,6 +1616,7 @@ dist_patch_DATA = \ %D%/packages/patches/opensles-add-license-file.patch \ %D%/packages/patches/openssl-1.1-c-rehash-in.patch \ %D%/packages/patches/openssl-3.0-c-rehash-in.patch \ + %D%/packages/patches/opentaxsolver-file-browser-fix.patch \ %D%/packages/patches/open-zwave-hidapi.patch \ %D%/packages/patches/orpheus-cast-errors-and-includes.patch \ %D%/packages/patches/osip-CVE-2017-7853.patch \ diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm index c9c8e9b823..252f5e422c 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))))) + ;; 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")) + (symlink (string-append #$output "/bin/ots_gui2") + (string-append #$output "/bin/Run_taxsolve_GUI")) + (copy-recursively "../tax_form_files" + (string-append #$output + "/tax_form_files")) + (copy-recursively "formdata" + (string-append #$output + "/src/formdata"))))) + #:tests? #f)) + (inputs (list gtk+-2)) + (native-inputs (list pkg-config)) + (synopsis "Yearly tax preparation tool") + (description + "OpenTaxSolver is a program for calculating tax form entries for federal and +state personal income taxes. It automatically fills out and prints your forms +for mailing.") + (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 + -- 2.39.1 ^ permalink raw reply related [flat|nested] 9+ messages in thread
end of thread, other threads:[~2023-02-18 11:47 UTC | newest] Thread overview: 9+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 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 ` [bug#61207] [PATCH v2] " Josselin Poiret via Guix-patches via 2023-02-11 22:07 ` 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
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.