From patchwork Mon Feb 13 03:26:19 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Skylar Hill X-Patchwork-Id: 46908 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id 05EE516662; Mon, 13 Feb 2023 04:32:20 +0000 (GMT) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-3.7 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS, URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id 5930516660 for ; Mon, 13 Feb 2023 04:32:18 +0000 (GMT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pRQVg-0003uD-Sw; Sun, 12 Feb 2023 23:32:12 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pRQVY-0003p3-D1 for guix-patches@gnu.org; Sun, 12 Feb 2023 23:32:08 -0500 Received: from debbugs.gnu.org ([209.51.188.43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pRQVY-0006dU-0P for guix-patches@gnu.org; Sun, 12 Feb 2023 23:32:04 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1pRQVX-0000gW-TB for guix-patches@gnu.org; Sun, 12 Feb 2023 23:32:03 -0500 X-Loop: help-debbugs@gnu.org Subject: [bug#61207] [PATCH v2] gnu: Add opentaxsolver. Resent-From: Skylar Hill Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Mon, 13 Feb 2023 04:32:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 61207 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Nicolas Goaziou Cc: dev@jpoiret.xyz, 61207@debbugs.gnu.org X-Debbugs-Original-Cc: Josselin Poiret , 61207@debbugs.gnu.org, Josselin Poiret via Guix-patches via Received: via spool by 61207-submit@debbugs.gnu.org id=B61207.16762627092580 (code B ref 61207); Mon, 13 Feb 2023 04:32:03 +0000 Received: (at 61207) by debbugs.gnu.org; 13 Feb 2023 04:31:49 +0000 Received: from localhost ([127.0.0.1]:47333 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pRQVI-0000fP-VA for submit@debbugs.gnu.org; Sun, 12 Feb 2023 23:31:49 -0500 Received: from mout02.posteo.de ([185.67.36.66]:52121) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pRPU8-0007Ci-JL for 61207@debbugs.gnu.org; Sun, 12 Feb 2023 22:26:33 -0500 Received: from submission (posteo.de [185.67.36.169]) by mout02.posteo.de (Postfix) with ESMTPS id 18CAD2401A8 for <61207@debbugs.gnu.org>; Mon, 13 Feb 2023 04:26:26 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017; t=1676258787; bh=vqBngGcjXyb1yCFNgBJDlPOTIz9HhnLNc8LpLD/YTO4=; h=From:To:Cc:Subject:Date:From; b=GBaOga6CKWlKsuTws1Tr/gmkpOaCZfKL+EDmGICFbuDJTHGlHvwHspGhXe8XKWiJH OdS74Z5rTB1AH/l+qKm+i86xlUsFWcO5s6NkI9EyCuXLALLWHnrDljEksrnhO6+sJf XSaCuB2u+n8pehwQHqqTBFHxaioLc5r3Rq6kz5pBZa5zGibuOPKIIJfV9xAavi49l+ ZaxEynWBzJtJY6PO3/CfBpuW3D2nuPuPD2pd72S+PMhcRfZ4YBOwXhuuC4Xru8xnhP RAeAC5dMnbxEny7vh7BTlzhZGhzYmCoQSbvWVbXBDbRnqcI0aZWnMzOp6uApz/JpAe ycTMoYKK0oGcA== Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4PFV9r0Xsmz6tpl; Mon, 13 Feb 2023 04:26:21 +0100 (CET) From: Skylar Hill References: <87edr6x169.fsf@jpoiret.xyz> <87mt5jsvt6.fsf@nicolasgoaziou.fr> <87mt5iz2t9.fsf@posteo.net> Date: Mon, 13 Feb 2023 03:26:19 +0000 In-Reply-To: <87mt5iz2t9.fsf@posteo.net> (Skylar Hill's message of "Sun, 12 Feb 2023 21:01:22 -0600") Message-ID: <871qmuz1no.fsf@posteo.net> MIME-Version: 1.0 X-Mailman-Approved-At: Sun, 12 Feb 2023 23:31:45 -0500 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org X-getmail-retrieved-from-mailbox: Patches 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 , 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 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 ;;; Copyright © 2022 Justin Veilleux ;;; Copyright © 2023 Frank Pursel +;;; Copyright © 2023 Skylar Hill ;;; ;;; 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 +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 + #include + #include ++#include + #include + // #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 +