[packages/cgminer] Up to 4.11.1

arekm arekm at pld-linux.org
Wed May 20 18:42:08 CEST 2026


commit 67983ac23a4182cf43d0939a12a6b1cda42db506
Author: Arkadiusz Miśkiewicz <arekm at maven.pl>
Date:   Wed May 20 18:41:52 2026 +0200

    Up to 4.11.1

 cgminer-fno-common.patch     | 264 +++++++++++++++++++++++++++++++++++++++++++
 cgminer-system-jansson.patch |  61 ----------
 cgminer.spec                 |  39 ++++---
 3 files changed, 286 insertions(+), 78 deletions(-)
---
diff --git a/cgminer.spec b/cgminer.spec
index 4a35d24..86bbf1e 100644
--- a/cgminer.spec
+++ b/cgminer.spec
@@ -1,23 +1,20 @@
-%bcond_with	knc
 Summary:	FPGA/ASIC Miner by Con Kolivas
 Name:		cgminer
-Version:	3.12.0
-Release:	2
+Version:	4.11.1
+Release:	1
 License:	GPL v2
 Group:		Applications/Networking
 URL:		http://forum.bitcoin.org/index.php?topic=28402.0
-Source0:	http://ck.kolivas.org/apps/cgminer/%{name}-%{version}.tar.bz2
-# Source0-md5:	38c577240e10c1ed9d213fedce9dc342
-Patch0:		%{name}-system-jansson.patch
+Source0:	https://github.com/ckolivas/cgminer/archive/v%{version}/%{name}-%{version}.tar.gz
+# Source0-md5:	1d5466a79766850de46f0ca964247090
+Patch0:		%{name}-fno-common.patch
 BuildRequires:	autoconf
 BuildRequires:	automake
 BuildRequires:	curl-devel
-BuildRequires:	jansson-devel
+BuildRequires:	jansson-devel >= 2.6
 BuildRequires:	libusb-devel
 BuildRequires:	ncurses-devel
 BuildRequires:	pkgconfig >= 0.9.0
-BuildRequires:	udev-devel
-BuildRequires:	yasm >= 1.1.0
 BuildRoot:	%{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
 %description
@@ -32,21 +29,29 @@ This is a miner for Bitcoin.
 %{__autoconf}
 %{__autoheader}
 %{__automake}
+# Standalone-only drivers (ants*, bab, bitfury16, bitmine_A1, dragonmint_t1,
+# knc, minion, sp10, sp30) cannot be combined; upstream supports building a
+# multi-driver binary only with USB-based drivers.
 %configure \
 	CPPFLAGS="%{rpmcppflags} -I/usr/include/ncurses" \
+	CFLAGS="%{rpmcflags}" \
 	--disable-silent-rules \
-	--enable-scrypt \
+	--enable-avalon \
+	--enable-avalon2 \
+	--enable-avalon4 \
+	--enable-avalon7 \
+	--enable-avalon-miner \
 	--enable-bflsc \
-	--%{?with_knc:en}%{!?with_knc:dis}able-knc \
-	--enable-hashfast \
 	--enable-bitforce \
-	--enable-klondike \
 	--enable-bitfury \
+	--enable-blockerupter \
+	--enable-cointerra \
+	--enable-drillbit \
+	--enable-hashfast \
+	--enable-hashratio \
 	--enable-icarus \
-	--enable-avalon \
-	--enable-modminer \
-	--enable-ztex \
-	--with-system-libusb
+	--enable-klondike \
+	--enable-modminer
 
 %{__make}
 
diff --git a/cgminer-fno-common.patch b/cgminer-fno-common.patch
new file mode 100644
index 0000000..ab45a6f
--- /dev/null
+++ b/cgminer-fno-common.patch
@@ -0,0 +1,264 @@
+DRIVER_PROTOTYPE expanded to a tentative definition in every TU including
+miner.h. With GCC 10+ defaulting to -fno-common, the linker rejects multiple
+definitions. Also guard the per-driver entries of *_PARSE_COMMANDS macros
+with the matching USE_* defines so disabled drivers do not produce
+undefined-symbol references through DRIVER_DRV_DETECT / DRIVER_FILL_DEVICE_DRV
+expansions in cgminer.c.
+
+--- cgminer-4.11.1/miner.h.orig	2026-05-20 18:30:06.229555631 +0200
++++ cgminer-4.11.1/miner.h	2026-05-20 18:30:43.939555616 +0200
+@@ -237,43 +237,181 @@
+  * trying to claim same chip but different devices. Adding a device here will
+  * update all macros in the code that use the *_PARSE_COMMANDS macros for each
+  * listed driver. */
++/* Guard each entry by the matching USE_* define so disabled drivers do not
++ * produce link references via DRIVER_PARSE_COMMANDS expansions in cgminer.c. */
++#ifdef USE_BITFORCE
++#define DRV_IF_bitforce(X) X
++#else
++#define DRV_IF_bitforce(X)
++#endif
++#ifdef USE_MODMINER
++#define DRV_IF_modminer(X) X
++#else
++#define DRV_IF_modminer(X)
++#endif
++#ifdef USE_ANT_S1
++#define DRV_IF_ants1(X) X
++#else
++#define DRV_IF_ants1(X)
++#endif
++#ifdef USE_ANT_S2
++#define DRV_IF_ants2(X) X
++#else
++#define DRV_IF_ants2(X)
++#endif
++#ifdef USE_ANT_S3
++#define DRV_IF_ants3(X) X
++#else
++#define DRV_IF_ants3(X)
++#endif
++#ifdef USE_AVALON
++#define DRV_IF_avalon(X) X
++#else
++#define DRV_IF_avalon(X)
++#endif
++#ifdef USE_AVALON2
++#define DRV_IF_avalon2(X) X
++#else
++#define DRV_IF_avalon2(X)
++#endif
++#ifdef USE_AVALON4
++#define DRV_IF_avalon4(X) X
++#else
++#define DRV_IF_avalon4(X)
++#endif
++#ifdef USE_AVALON7
++#define DRV_IF_avalon7(X) X
++#else
++#define DRV_IF_avalon7(X)
++#endif
++#ifdef USE_AVALON_MINER
++#define DRV_IF_avalonm(X) X
++#else
++#define DRV_IF_avalonm(X)
++#endif
++#ifdef USE_BAB
++#define DRV_IF_bab(X) X
++#else
++#define DRV_IF_bab(X)
++#endif
++#ifdef USE_BFLSC
++#define DRV_IF_bflsc(X) X
++#else
++#define DRV_IF_bflsc(X)
++#endif
++#ifdef USE_BITFURY
++#define DRV_IF_bitfury(X) X
++#else
++#define DRV_IF_bitfury(X)
++#endif
++#ifdef USE_BITFURY16
++#define DRV_IF_bitfury16(X) X
++#else
++#define DRV_IF_bitfury16(X)
++#endif
++#ifdef USE_BITMINE_A1
++#define DRV_IF_bitmineA1(X) X
++#else
++#define DRV_IF_bitmineA1(X)
++#endif
++#ifdef USE_BLOCKERUPTER
++#define DRV_IF_blockerupter(X) X
++#else
++#define DRV_IF_blockerupter(X)
++#endif
++#ifdef USE_COINTERRA
++#define DRV_IF_cointerra(X) X
++#else
++#define DRV_IF_cointerra(X)
++#endif
++#ifdef USE_DRAGONMINT_T1
++#define DRV_IF_dragonmintT1(X) X
++#else
++#define DRV_IF_dragonmintT1(X)
++#endif
++#ifdef USE_HASHFAST
++#define DRV_IF_hashfast(X) X
++#else
++#define DRV_IF_hashfast(X)
++#endif
++#ifdef USE_DRILLBIT
++#define DRV_IF_drillbit(X) X
++#else
++#define DRV_IF_drillbit(X)
++#endif
++#ifdef USE_HASHRATIO
++#define DRV_IF_hashratio(X) X
++#else
++#define DRV_IF_hashratio(X)
++#endif
++#ifdef USE_ICARUS
++#define DRV_IF_icarus(X) X
++#else
++#define DRV_IF_icarus(X)
++#endif
++#ifdef USE_KLONDIKE
++#define DRV_IF_klondike(X) X
++#else
++#define DRV_IF_klondike(X)
++#endif
++#ifdef USE_KNC
++#define DRV_IF_knc(X) X
++#else
++#define DRV_IF_knc(X)
++#endif
++#ifdef USE_MINION
++#define DRV_IF_minion(X) X
++#else
++#define DRV_IF_minion(X)
++#endif
++#ifdef USE_SP10
++#define DRV_IF_sp10(X) X
++#else
++#define DRV_IF_sp10(X)
++#endif
++#ifdef USE_SP30
++#define DRV_IF_sp30(X) X
++#else
++#define DRV_IF_sp30(X)
++#endif
++
+ #define FPGA_PARSE_COMMANDS(DRIVER_ADD_COMMAND) \
+-	DRIVER_ADD_COMMAND(bitforce) \
+-	DRIVER_ADD_COMMAND(modminer)
++	DRV_IF_bitforce(DRIVER_ADD_COMMAND(bitforce)) \
++	DRV_IF_modminer(DRIVER_ADD_COMMAND(modminer))
+ 
+ #define ASIC_PARSE_COMMANDS(DRIVER_ADD_COMMAND) \
+-	DRIVER_ADD_COMMAND(ants1) \
+-	DRIVER_ADD_COMMAND(ants2) \
+-	DRIVER_ADD_COMMAND(ants3) \
+-	DRIVER_ADD_COMMAND(avalon) \
+-	DRIVER_ADD_COMMAND(avalon2) \
+-	DRIVER_ADD_COMMAND(avalon4) \
+-	DRIVER_ADD_COMMAND(avalon7) \
+-	DRIVER_ADD_COMMAND(avalonm) \
+-	DRIVER_ADD_COMMAND(bab) \
+-	DRIVER_ADD_COMMAND(bflsc) \
+-	DRIVER_ADD_COMMAND(bitfury) \
+-	DRIVER_ADD_COMMAND(bitfury16) \
+-	DRIVER_ADD_COMMAND(bitmineA1) \
+-	DRIVER_ADD_COMMAND(blockerupter) \
+-	DRIVER_ADD_COMMAND(cointerra) \
+-	DRIVER_ADD_COMMAND(dragonmintT1) \
+-	DRIVER_ADD_COMMAND(hashfast) \
+-	DRIVER_ADD_COMMAND(drillbit) \
+-	DRIVER_ADD_COMMAND(hashratio) \
+-	DRIVER_ADD_COMMAND(icarus) \
+-	DRIVER_ADD_COMMAND(klondike) \
+-	DRIVER_ADD_COMMAND(knc) \
+-	DRIVER_ADD_COMMAND(minion) \
+-	DRIVER_ADD_COMMAND(sp10) \
+-	DRIVER_ADD_COMMAND(sp30)
++	DRV_IF_ants1(DRIVER_ADD_COMMAND(ants1)) \
++	DRV_IF_ants2(DRIVER_ADD_COMMAND(ants2)) \
++	DRV_IF_ants3(DRIVER_ADD_COMMAND(ants3)) \
++	DRV_IF_avalon(DRIVER_ADD_COMMAND(avalon)) \
++	DRV_IF_avalon2(DRIVER_ADD_COMMAND(avalon2)) \
++	DRV_IF_avalon4(DRIVER_ADD_COMMAND(avalon4)) \
++	DRV_IF_avalon7(DRIVER_ADD_COMMAND(avalon7)) \
++	DRV_IF_avalonm(DRIVER_ADD_COMMAND(avalonm)) \
++	DRV_IF_bab(DRIVER_ADD_COMMAND(bab)) \
++	DRV_IF_bflsc(DRIVER_ADD_COMMAND(bflsc)) \
++	DRV_IF_bitfury(DRIVER_ADD_COMMAND(bitfury)) \
++	DRV_IF_bitfury16(DRIVER_ADD_COMMAND(bitfury16)) \
++	DRV_IF_bitmineA1(DRIVER_ADD_COMMAND(bitmineA1)) \
++	DRV_IF_blockerupter(DRIVER_ADD_COMMAND(blockerupter)) \
++	DRV_IF_cointerra(DRIVER_ADD_COMMAND(cointerra)) \
++	DRV_IF_dragonmintT1(DRIVER_ADD_COMMAND(dragonmintT1)) \
++	DRV_IF_hashfast(DRIVER_ADD_COMMAND(hashfast)) \
++	DRV_IF_drillbit(DRIVER_ADD_COMMAND(drillbit)) \
++	DRV_IF_hashratio(DRIVER_ADD_COMMAND(hashratio)) \
++	DRV_IF_icarus(DRIVER_ADD_COMMAND(icarus)) \
++	DRV_IF_klondike(DRIVER_ADD_COMMAND(klondike)) \
++	DRV_IF_knc(DRIVER_ADD_COMMAND(knc)) \
++	DRV_IF_minion(DRIVER_ADD_COMMAND(minion)) \
++	DRV_IF_sp10(DRIVER_ADD_COMMAND(sp10)) \
++	DRV_IF_sp30(DRIVER_ADD_COMMAND(sp30))
+ 
+ #define DRIVER_PARSE_COMMANDS(DRIVER_ADD_COMMAND) \
+ 	FPGA_PARSE_COMMANDS(DRIVER_ADD_COMMAND) \
+ 	ASIC_PARSE_COMMANDS(DRIVER_ADD_COMMAND)
+ 
+ #define DRIVER_ENUM(X) DRIVER_##X,
+-#define DRIVER_PROTOTYPE(X) struct device_drv X##_drv;
++#define DRIVER_PROTOTYPE(X) extern struct device_drv X##_drv;
+ 
+ /* Create drv_driver enum from DRIVER_PARSE_COMMANDS macro */
+ enum drv_driver {
+--- cgminer-4.11.1/driver-hashratio.h.orig	2026-05-20 18:32:04.193383931 +0200
++++ cgminer-4.11.1/driver-hashratio.h	2026-05-20 18:32:16.769555578 +0200
+@@ -15,7 +15,7 @@
+ #include "util.h"
+ 
+ #ifdef USE_HASHRATIO
+-char *opt_hashratio_freq;
++extern char *opt_hashratio_freq;
+ 
+ #define HRTO_MINER_THREADS	1
+ 
+--- cgminer-4.11.1/driver-cointerra.h.orig	2026-05-20 18:32:04.197686710 +0200
++++ cgminer-4.11.1/driver-cointerra.h	2026-05-20 18:32:17.842888911 +0200
+@@ -151,8 +151,8 @@
+ #define CTA_REQ_INTERVAL	5
+ 
+ 
+-int opt_cta_load;
+-int opt_ps_load;
++extern int opt_cta_load;
++extern int opt_ps_load;
+ 
+ struct cointerra_info {
+ 	/* Info data */
+--- cgminer-4.11.1/driver-cointerra.c.orig	2018-08-16 04:19:30.000000000 +0200
++++ cgminer-4.11.1/driver-cointerra.c	2026-05-20 18:32:38.656222232 +0200
+@@ -15,6 +15,7 @@
+ static const char *cointerra_hdr = "ZZ";
+ 
+ int opt_ps_load;
++int opt_cta_load;
+ 
+ static void cta_gen_message(char *msg, char type)
+ {
+--- cgminer-4.11.1/driver-hashratio.c.orig	2018-08-16 04:19:30.000000000 +0200
++++ cgminer-4.11.1/driver-hashratio.c	2026-05-20 18:32:58.686222209 +0200
+@@ -37,6 +37,8 @@
+ static int opt_hashratio_fan_min = HRTO_DEFAULT_FAN_MIN;
+ static int opt_hashratio_fan_max = HRTO_DEFAULT_FAN_MAX;
+ 
++char *opt_hashratio_freq;
++
+ static int hashratio_freq = HRTO_DEFAULT_FREQUENCY;
+ 
+ //static int get_fan_pwm(int temp) {
diff --git a/cgminer-system-jansson.patch b/cgminer-system-jansson.patch
deleted file mode 100644
index 00b35dc..0000000
--- a/cgminer-system-jansson.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-diff -urN cgminer-3.10.0.org/compat/Makefile.am cgminer-3.10.0/compat/Makefile.am
---- cgminer-3.10.0.org/compat/Makefile.am	2013-11-30 22:24:45.000000000 +0100
-+++ cgminer-3.10.0/compat/Makefile.am	2014-01-19 19:43:30.709577832 +0100
-@@ -1,5 +1,5 @@
- 
--SUBDIRS	= jansson-2.5
-+SUBDIRS	=
- 
- if WANT_USBUTILS
- if WANT_STATIC_LIBUSB
-diff -urN cgminer-3.10.0.org/configure.ac cgminer-3.10.0/configure.ac
---- cgminer-3.10.0.org/configure.ac	2014-01-09 06:38:58.000000000 +0100
-+++ cgminer-3.10.0/configure.ac	2014-01-19 19:43:30.709577832 +0100
-@@ -337,9 +337,6 @@
- 
- AM_CONDITIONAL([WANT_STATIC_LIBUSB], [test x$dlibusb = xno])
- 
--AC_CONFIG_SUBDIRS([compat/jansson-2.5])
--JANSSON_LIBS="compat/jansson-2.5/src/.libs/libjansson.a"
--
- PKG_PROG_PKG_CONFIG()
- 
- if test "x$have_cgminer_sdk" = "xtrue"; then
-@@ -360,6 +357,8 @@
- 	[libcurl=$enableval]
- 	)
- 
-+PKG_CHECK_MODULES([JANSSON], [jansson >= 2.5])
-+
- if test "x$libcurl" != xno; then
- 	if test "x$have_win32" != xtrue; then
- 		PKG_CHECK_MODULES([LIBCURL], [libcurl >= 7.25.0], [AC_DEFINE([CURL_HAS_KEEPALIVE], [1], [Defined if version of curl supports keepalive.])],
-@@ -422,6 +421,7 @@
- AC_DEFINE_UNQUOTED([CGMINER_PREFIX], ["$prefix/bin"], [Path to cgminer install])
- 
- AC_SUBST(JANSSON_LIBS)
-+AC_SUBST(JANSSON_CFLAGS)
- AC_SUBST(PTHREAD_FLAGS)
- AC_SUBST(DLOPEN_FLAGS)
- AC_SUBST(PTHREAD_LIBS)
-diff -urN cgminer-3.10.0.org/Makefile.am cgminer-3.10.0/Makefile.am
---- cgminer-3.10.0.org/Makefile.am	2014-01-09 06:20:18.000000000 +0100
-+++ cgminer-3.10.0/Makefile.am	2014-01-19 19:44:00.330518487 +0100
-@@ -1,8 +1,6 @@
- 
- ACLOCAL_AMFLAGS = -I m4
- 
--JANSSON_CPPFLAGS= -I$(top_builddir)/compat/jansson-2.5/src -I$(top_srcdir)/compat/jansson-2.5/src
--
- if WANT_USBUTILS
- USBUTILS_CPPFLAGS = -I$(top_builddir)/compat/libusb-1.0/libusb -I$(top_srcdir)/compat/libusb-1.0/libusb
- else
-@@ -18,7 +16,7 @@
- 
- SUBDIRS		= lib compat ccan
- 
--cgminer_CPPFLAGS = $(PTHREAD_FLAGS) -fno-strict-aliasing $(JANSSON_CPPFLAGS) $(USBUTILS_CPPFLAGS)
-+cgminer_CPPFLAGS = $(PTHREAD_FLAGS) -fno-strict-aliasing $(JANSSON_CFLAGS) $(USBUTILS_CPPFLAGS)
- 
- bin_PROGRAMS	= cgminer
- 
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/cgminer.git/commitdiff/67983ac23a4182cf43d0939a12a6b1cda42db506



More information about the pld-cvs-commit mailing list