Browse Source

Bump version to 4.0.0

Luke Dashjr 11 years ago
parent
commit
7817eae163
6 changed files with 663 additions and 5 deletions
  1. 622 0
      NEWS
  2. 1 1
      README.RPC
  3. 2 2
      configure.ac
  4. 36 0
      debian/changelog
  5. 1 1
      debian/control
  6. 1 1
      openwrt/bfgminer/Makefile

+ 622 - 0
NEWS

@@ -1,3 +1,625 @@
+BFGMiner Version 4.0.0 - May 26, 2014
+
+- Workaround Homebrew-induced segfault during device scan
+- Allow hotplug with scrypt
+- Bugfix: test_domain_funcs: printf precisions must be int, not size_t
+- littlefury: Cleanup to make avoiding memory leak easier
+- Bugfix: Avoid using an enum type to hold a bitfield
+- ruby extension is "rb" not "py"
+- README.RPC: Document api-example.rb
+- Add Ruby Api Example
+- hashfast: Check devices with Product matching "GoldenNonce" so we have a
+vendor-neutral way to detect them
+- Reduce set_device-not-implemented message to debug log level, since it can
+occur for init-only settings
+- Use a mutex to block pool_active on a common check per pool at any given time
+- Use cURL return code to check if cURL sockets hit CURLE_AGAIN
+- Abstract pool_recently_got_work into a dedicated function
+- AUTHORS: Dmitry Smirnov contributes BFGMiner packaging to Debian
+- README: Talk about more GUIs and mining OSs
+- icarus: Minor optimisation (swap byte order in 32-bit always-aligned groups,
+and skip pointless memory copy)
+- icarus: Initialise ob_bin to avoid leaking other memory to device
+- Bugfix: bitfury: Set stat_elapsed_secs early, just in case we jump with goto
+- Bugfix: Report actual kernel name in RPC, rather than kernel interface name
+- README.scrypt: Document psw kernel
+- opencl: Another optimised scrypt kernel ("psw")
+- README.scrypt: Document zuikkis kernel
+- opencl: Optimised scrypt kernel ("zuikkis")
+- Bugfix: Silence harmless warnings
+- Bugfix: vcom_set_timeout: Return whether successful
+- bitforce: Set name for ASIC devices
+- Bugfix: Avoid unnecessary rescans due to wrong devtype
+- bitforce: Support 28nm ChannelNN format for ZCX
+- Bugfix: bitforce: Don't confuse channels with X-Link
+- Bugfix: bitforce: Set VCOM timeout to 1 second for ZGX request, since it
+sometimes lacks a newline
+- lowl-vcom: vcom_set_timeout function
+- bitfury: Eventually (after 30 seconds) give up trying to detect chip
+generation and just assume gen1
+- bitfury: Use other nonces for gen1 detection so one bad core can't break it
+- Bugfix: bitfury: Account for necessary nonce fudging during chipgen detection
+- gridseed: Switch from the Queued miner loop to the Scanhash miner loop
+Improves performance on Raspberry Pi Fixes inaccurate hashrate estimates Fixes
+bug overwriting work inadvertently
+- If the current pool lacks its own block change detection, keep the pool used
+for that connected
+- pool_active_lp_pool function to complement select_longpoll_pool
+- Track which pools have active longpoll connections
+- Avoid retrying longpoll requests for removed pools (and possibly change block
+change notification source for existing ones) if longpoll connection gets
+dropped
+- util: Pass full json_rpc_call_state to upload_data_cb
+- Remove now-unused variable
+- nanofury: Update enable/disable/reinit to cleanly handle multichip devices
+- DevAPI: for_each_{managed,logical}_proc helper macros
+- bifury: Default max_queued to chips * 5 + 6 so it is back up to the original
+16 for bi*fury (which seems to need it sometimes)
+- bifury: Default max_queued to chips * 5 for extra breathing room (avoids
+occasional issues with Hex*Fury)
+- README.ASIC: Document workarounds for OSM/Hex*Fury firmware bugs
+- bifury: Measure hashes done by nonces found since we cannot tell what
+generation chip is in use
+- bifury: Default max_queued to chips * 4
+- bifury: chips init setting to workaround buggy hardware which reports wrong
+chip count
+- bifury: free_after_job setting to workaround buggy hardware which ignores
+maxroll
+- bfg_strtobool helper function
+- bifury: Enable runtime modification of max_queued
+- bifury: Migrate to set_device_funcs interface
+- Stratum: Accept a "notls" parameter on pool URIs to disable opportunistic TLS
+- uri_get_param_bool helper function for pool parameters
+- nanofury: Only ramp up osc6_bits on multichip devices
+- Bugfix: nanofury: Move the bitfury pointer back to the last element before
+starting the ramp up loop
+- Bugfix: Use pdiff 1/0x10000 for scrypt benchmarking
+- benchmark: Use sane bits (of a very high difficulty to avoid triggering
+anti-reorg protections)
+- Ignore work difficulty minisculely harder (ie, rounding error) than what
+device supports
+- Benchmark: Add 2D work support
+- SSM: Use a lower share difficulty in scrypt mode
+- Rework test_nonce to share common logic for scrypt and SHA256d
+- work2d: Accept nonce difficulty with submissions
+- configure: Make work2d building abstract from libevent
+- work2d: Standardised way to pad extranonce beyond what work2d manages
+- Abstract code from stratumsrv_mining_submit into new work2d_submit_nonce
+function
+- Avoid handling hex encoding in work2d
+- Move/rename _ssm_gen_dummy_work to work2d_gen_dummy_work
+- SSM: Refactor _ssm_gen_dummy_work to work with struct stratum_work instead of
+struct stratumsrv_job
+- Move "nonce1" session id from struct pool to struct stratum_work
+- Add pool and work_restart_id to struct stratum_work so they can be used
+independently of struct pool
+- Move n2size from struct pool to struct stratum_work
+- autogen.sh: Automate cleaning INSTALL out of libblkmaker so git updates
+properly
+- Update libblkmaker to 0.4.0
+- Replace drv_rolllimit with struct ntime_roll_limits
+- util: Unpack and pack utility functions ([u]pk_u{8,16,32}{le,be})
+- GBT: Do not allow drivers to roll ntime
+- GBT: Use libblkmaker 2D work to service SSM and potentially other 2D work
+drivers
+- Hide blktemplate_t behind bfg_tmpl_ref to abstract reference counter
+- Add pool_has_usable_swork function
+- SSM: Split stratum work division into 2D work manager ("work2d")
+- bitforce: Avoid crashing when broken devices report more jobs flushed than
+they had to flush
+- nanofury: Gradually ramp up osc6_bits for NF6 design
+- util: memrchr is not portable (GNU extension), so implement our own my_memrchr
+- bitfury: Report correct hashrate for gen2 chips
+- bitfury: Detect gen2 chips
+- Stratum: If difficulty calculates out to 0.999 to 1, round it up to 1 to avoid
+something SHA2 hardware cannot handle
+- Stratum: If the pool target has changed since the job a work came from, check
+any shares against the new target too in case it expects retroactive difficulty
+adjustments
+- Stratum: Interpret integer difficulty values as pdiff (or Ldiff, for scrypt)
+to avoid losing shares on non-compliant servers
+- Rework difficulty-to-target functions to error on the safe side, and
+consistently work in pdiff or bdiff
+- Simplify stratum to convert difficulty to target immediately
+- Stratum: Attempt connection with unauthenticated TLS, with failover to raw TCP
+- Stratum: Return to curl_easy_{send,recv}
+- get_registered_domain: Return full IP for raw IP addresses, so they can at
+least redirect to the same IP
+- Reject redirection across different registered domain names (can be disabled
+by appending #redirect to pool URI)
+- util: match_domains function
+- util: Add isCalpha, get_registered_domain, and extract_domain functions
+- README: Update for gridseed 5-chip orb
+- configure: Clean up gridseed logic to only build by default when scrypt is
+enabled
+- gridseed: Fix warnings
+- gridseed: Added support for Scrypt hashing with 5-chip GridSeed devices
+- dualminer: Only one debug message needed for all init options
+- dualminer: Move opt_dual_mode to dualminer file
+- gc3355: move scrypt_only_reset_cmd out of scrypt_only_reset
+- dualminer: No need to reconfigure frequency every work
+- dualminer: refactor gc3355 code for readability, maintainability and use with
+other devices
+- dualminer: Abstract dualminer_init_hashrate out of dualminer_init_firstrun
+- dualminer: Initialise opt_pll_freq along with opt_sha2_units
+- dualminer: Move opt_sha2_units initialisation to new dualminer_set_defaults
+function
+- dualminer: Remove unnecessary opt_sha2_number
+- dualminer: Simplify teardown
+- dualminer: No need to parse strings for SHA2 unit counts
+- gc3355: Support for appending jobs with task id
+- gc3355: increase delays to 20ms
+- gc3355: use NULL for end-of-command terminator
+- dualminer: comment what various things are for and/or do
+- dualminer: Split gc3355_scrypt_prepare_work and gc3355_sha2_prepare_work out
+of dualminer_job_prepare
+- dualminer: Use cgsleep_ms rather than usleep
+- gc3355: Remove unused opt_hubfans variable
+- dualminer: rename various things to be clearer
+- Use a common enum bfg_gpio_value for both lowl-vcom (cts, dtr, rts) and
+mcp2210
+- README.RPC: Document quit/restart reply format change
+- RPC: Provide a full status section for quit/restart commands
+- RPC: Add "Miner" to version response to include software name along with
+version
+- Bugfix: Dereference udev monitor events when done with them
+- opencl: Workaround false warning regarding Mesa version number parsing
+- configure: Include <stddef.h> for _Static_assert check
+- opencl: If kernel does not specify an interface in scrypt mode, assume it's
+the scrypt interface
+- opencl: Replace dated versioning with hash of source code
+- opencl: Search all the same kernel paths when setting kernel
+- opencl: Accept arbitrary kernel filenames, provided they specify a kernel
+interface somewhere in the source file
+- Bugfix: Explicitly pass precision and width as int type
+- Make pool stability message use nicer English
+- Failover pool switching back delay is now configurable.
+- Expand extranonce2 size to 64-bit
+- README.ASIC: KnCMiner: Suggest --disable-other-drivers and remove
+no-optimisation CFLAGS
+- configure: libusb is implied by lowl-usb, so no need to list it as an option
+separately
+- Silence warnings when built without various drivers
+- DevAPI: Remove long deprecated serial_detect function family
+- Bugfix: Turn spidevc into lowl-spi to fix building the knc driver without the
+bitfury driver
+- Avoid triggering unnecessary device rescans (such as with pre-lowlevel
+drivers)
+- Replace --no-client-reconnect with --no-pool-redirect which also disables
+X-Stratum header redirects
+- Partial: A new --no-client-reconnect command that disables the
+'client.reconnect' function.
+- ftdi: Rename files to lowl-ftdi.{c,h} to fit with naming convention
+- bfx: New driver for BFx2 Bitfury USB stick miners
+- ftdi: ft232h_mpsse_readwrite_all function to do both reading and writing
+concurrently in MPSSE mode
+- ftdi: ft232h_mpsse_set_axbus function
+- ftdi: Support for ft232h MPSSE mode (currently only works with
+ft232r_write_all)
+- ftdi: Split most of ft232r_open into a ftdi_common_open function
+- ftdi: Support for --device-protocol-dump
+- ftdi: Scan for ft232h-based devices
+- ftdi: Avoid neutering lowlevel_device_info when opening it
+- ftdi: Accept const data in write functions
+- ftdi: Use actual USB packet size for FTDI status removal
+- ftdi: Make ftdi lowlevel code independent of x6500 driver
+- dualminer: Workaround false compiler warning in gc3355_config_cpm
+- Bugfix: --disable-other-drivers should not force libusb to be unused
+- Bugfix: README: Alphabetise and categorise build configuration options (and
+add missing ones)
+- TUI: Use _wlogprint for pool proto to avoid compiler warning
+- Bugfix: TUI: Fall back to RPC URI if sockaddr_url hasn't been extracted (such
+as benchmark mode)
+- Hide work update messages unless explicitly enabled with hidden
+--verbose-work-updates flag
+- TUI: Redesign pool info line to include share difficulties in multipool modes
+and last explicity work update timestamp
+- nanofury: Abstract both power gpios into a nanofury_power_enable function
+- nanofury: Add NANOFURY_GP_PIN_PWR_EN0 (inverted PWR_EN) - support for power
+management (hardware) optimizations
+- Bugfix: nanofury: Set cgpu_data for all processors (eg, to avoid crashing in
+nanofury_set_ledmode for non-first procs)
+- Bugfix: nanofury: Use correct SPI port for baud setting
+- proxy: "Report in" clients when their info is looked up by username
+- opencl: Replace (and deprecate) --no-opencl-binaries option, with --set
+opencl:binary=no
+- opencl: Reenable OpenCL kernel binaries for Mesa OpenCL >= 10.1
+- gc3355: Replace frequency-setting hex blobs with logic
+- README: Update for DualMiner
+- make-release: Switch to xz for source releases
+- Stratum: If a pool explicitly tells us it doesn't support get_transactions, no
+need to wait for a timeout
+- api - buffer size off by 1 for joined commands
+- miner.php - define a default rigport (that can be changed) and don't require a
+port number in the rigs array
+- miner.php allow links for rig buttons in tables and allow using the 4th IP
+octet if no rig name - default disabled for both
+- Remove wrong goto
+- Remove the unqueued work reference when we discard work from get queued as'
+well.
+- Wake the global work scheduler when we remove a work item from the unqueued
+work pointer.
+- Discard work that is stale in the get_queued() function, returning NULL
+instead.
+- Bugfix: dualminer: Declare support for both SHA256d and scrypt algorithms
+- gc3355: Use lowl-vcom set_serial_dtr function
+- lowl-vcom: Implement set_serial_dtr
+- gc3355: Use lowl-vcom cts/rts functions
+- lowl-vcom: Implement set_serial_rts for Windows
+- lowl-vcom: set_serial_rts should return the new rts value, if anything
+- Rename icarus-common.h to driver-icarus.h
+- icarus: probe_timeout setting to control how long we wait before giving up on
+probes
+- icarus: Defer initial open until init
+- Remove debugging garbage that snuck in
+- configure: New --disable-other-drivers options for users who want to build
+just select drivers
+- Simplify _now_gettimeofday on Windows, working around weird WINE crash
+- cpu: Fix and simplify benchmarking on Windows (removes hidden --bench-algo
+option)
+- Remove old bench_block.h, no longer needed
+- Bugfix: cpu: Adapt benchmarking code to new benchmark work generator
+- Report precise share difficulties below 1
+- Bugfix: lowlevel: Pretend drivers not matching the active algorithm don't
+exist
+- Bugfix: dualminer: Set min_nonce_diff before getting work
+- Bugfix: gc3355: Use correct byte counts for hex2bin
+- configure: Fix up dualminer logic
+- dualminer: Support for mining both Scrypt and SHA2 using DualMiner GC3355
+thumb sticks
+- miner: scan for low level devices even if --scrypt is specified by the user
+(to detect Scrypt ASICs)
+- icarus: output protocol information if the user specifies
+--device-protocol-dump
+- icarus: Support for driver-specified job command lengths
+- icarus: Support for custom driver job start function
+- icarus: Support for custom driver initialisation function
+- icarus: Call icarus_job_prepare via driver job_prepare key so it can be
+overridden
+- icarus: generic support for devices that return little-endian nonces
+- icarus: allow custom probes
+- icarus: expose do_icarus_close
+- RPC: Remove separate CPU and GPU counters from devs Msg
+- RPC: Optimise find_index_by_cgpu
+- Bugfix: RPC: Restore PGA index counting
+- Accept decimal values for --shares, and clarify weighed nature of the value
+- benchmark: Remove all real pools, and prevent adding them
+- benchmark: Fake submission of "shares"
+- benchmark: Roll data before nonce only
+- Bugfix: configure: Report bitforce:pci instead of bitforce:uio
+- bitforce: Workaround broken/old compilers by setting device_fd outside of
+initialisation
+- AUTHORS: Update email for Kano
+- RPC: Add "MHS rolling" key to status mirroring "MHS %ds"
+- minorfix: remove extra semicolon
+- Drillbit: Revert needless commit 270c1d01f, thanks @luke-jr
+- Drillbit: Add upper and lower bounds to "Eight boards have a multiple of 8
+ASICs" check
+- Drillbit: Clarify use of device_data pointer to store capabilities/protocol
+version temporarily
+- Drillbit: Keep reading work for as long as the device returns results.
+- Drillbit: Be strict about not accepting any boards with newer protocol
+versions. Protocol version bumps are non-backwards-compatible.
+- Drillbit: Add support for "protocol version 4", non-device-specific
+configuration packet format
+- README.RPC: Add link to Node.js RPC wrapper
+- opencl: Get temperature and fan speed updates with get_stats interface rather
+than abusing statline override interface
+- Bugfix: Remove devtype variable from driver API
+- opencl: Deprecate --auto-{fan,gpu} and --gpu-dyninterval options
+- opencl: Infer autoengine mode when the clock setting receives a range
+- opencl: Infer autofan mode when the fan setting receives a range
+- Bugfix: opencl: Defer initial intensity assignment until init, so opt_scrypt
+has a chance to be set
+- opencl: Strip leading and trailing spaces from names
+- trimmed_strdup helper function
+- icarus: Replace hard-coded "Icarus" mentions
+- opencl: Deprecate all dedicated commandline options for parameters accessible
+via set_device
+- opencl: Make current intensity, xintensity, and oclthreads available via RPC
+- opencl: Redo Manage TUI detail line to use xintensity when more reasonable
+- opencl: Support for setting oclthreads as intensity=xNNN (for NNN xintensity);
+also allow setting d<whatever> for an initial dynamic intensity
+- opencl: Store oclthreads and only convert to/from intensity numbers when
+dealing with external interfaces
+- RPC: Deprecate all cpu* and gpu* commands, and remove CPU/GPU counts from
+'devs' response
+- RPC: pgarestart command to match {cpu,gpu}restart
+- RPC: Unify common code under get_pga_cgpu function
+- README.RPC: Deprecate gpu{intensity,mem,engine,fan,vddc} now that they can be
+accessed via {pga,proc}set
+- RPC: Consider CPU and OpenCL devices as "PGAs" to begin migration to a simpler
+interface
+- RPC: Turn gpu{intensity,mem,engine,fan,vddc} into wrappers around set_device
+- opencl: Support configuration using set_device interface
+- Bugfix: miner_thread: Don't call cgpu_set_defaults if it has already been
+called
+- Common add_set_device_option for automatically generated --set-device options
+- Bugfix: opencl: Safely handle work->device_data across work copies and cleans
+- set_device: Accept underscores for temp_{cutoff,target}
+- opencl: Allow specifying a comma separated list for --gpu-threads
+- opencl: _SET_INT_LIST2 to set variables not necessarily within
+opencl_device_data
+- hashfast: Enable setting device-wide clock at probe time using USB_INIT
+- Bugfix: hashfast: Use signed type for manipulating raw temperature data, in
+case it is below 0 C
+- hashbusteravalon: Add udev rule
+- klondike: Split up work and submissions among logical processors
+- klondike: Make reply_wait_time a settable variable (configured lower for
+hashbusteravalon)
+- klondike: Explicitly enable slaves as well as the master
+- hashbusteravalon: Klondike-based metadriver
+- klondike: Pre-initialise klninfo separately from probe
+- klondike: Allow setting max_work_count and max_work_time via set_device
+- klondike: Variablise max_work_count and old_work_ms
+- Move all OpenCL-specific data behind device_data pointers, and relocate
+OpenCL-specific code out of miner.c
+- opencl: Macro-ise code for list options
+- Reduce failure applying set-device rules to debug loglevel
+- Add --set as alias for --set-device
+- Bugfix: miner.c: Correct ccan include
+- Bugfix: Correct ccan-upstream directory include
+- Load default config before commandline options, so the latter override the
+former (but prioritise defaultconfig pools last)
+- configure: Check for sys/termios.h used by ccan/opt
+- make-release: Only include specific components of ccan
+- Use git submodule for ccan (moving opt_*_floatval into miner.c)
+- Probe erupter before icarus, since they are far more common now
+- Accept --no-config option to inhibit loading default config file, even without
+specifying another config
+- Bugfix: RPC: Ensure isjoin always gets initialised
+- bitforce: Remove two really-unused variables
+- nanofury: Silence false warning from some compilers about uninitialised
+variable use
+- hashfast: Promote problematic write() replies to warning level
+- hashfast: Log errno on write failures
+- Extend maximum processor count to 17,576 (3 letters)
+- DevAPI: Make processor lettering code more extensible
+- Remove shorthand option for undocumented --bench-algo
+- Remove long-deprecated and non-functional --enable-cpu option
+- Deprecate shorthand options for uncommonly-used --algo, --cpu-threads,
+--expiry, --gpu-threads, --intensity, --kernel-path, --kernel, --scan-time,
+--vectors, and --worksize
+- API-README correct new text format documentation
+- API allow multiple commands/replies in one request
+- Due to work restarts causing ~all processors to request work at once, it is
+always ideal to stage at least mining_threads extra works
+- scrypt: raise the maximum GPU intensity for scrypt mining to 31 - benefits
+shown for AMD R9 290 models
+- Bugfix: bitforce: ZNX/ZWX expect size minus 1
+- Bugfix: bitforce: Start building send_queue command at the real end
+- Bugfix: bitforce: Defer opening until after devdata is initialised (since it
+is now used to track open-ness)
+- Document uio/vfio configure options as --without-* since they are enabled by
+default when available
+- Include list of lowlevels built in configure and --help output
+- lowl-pci: Autodetect build-time support for UIO and/or VFIO during configure
+- README.ASIC: Document how to use Monarch in a PCI-Express arrangement on Linux
+- lowl-pci/vfio: Support pread/pwrite access to bars
+- lowl-pci: Support for vfio
+- Abstract UIO-specific code from bitforce driver into lowl-pci
+- bitforce: Initialise lasttag based on response register
+- bitforce: Tie in UIO with lowl-pci
+- lowl-pci: New lowlevel driver for raw PCI devices
+- util: bfg_slurp_file function to quickly read a file
+- bitforce: Support for PCI interface via UIO
+- bitforce: Hide vcom interfaces behind new struct bitforce_lowl_interface
+- bitforce: Let the lowlevel interface deal only with the actual device
+cgpu_info
+- bitforce: Abstract most of VCOM layer away from driver code
+- bitforce: Avoid checking fd by adding is_open flag
+- bitforce: Replace BF{open,close} with more abstract bitforce_vcom_{open,close}
+- bitforce: Abstract fd access mostly down to BFgets/BFwrite
+- bitforce: Support for 28nm WX single-stage bulkqueue command
+- bitforce: Use enum for style (FPGA vs SC)
+- bitforce: Remove never-used and buggy "work queue" mode
+- Round temperature to an integer in thermal cutoff warning
+- Bugfix: icarus: Initialise read_count and other timing-related variables
+- Change default log interval to 20 seconds
+- hashfast: Bump default thermal cutoff temperature to 100 C
+- Bugfix: DevAPI: Ensure temp-cutoff and temp-target are always supported
+settings
+- Bugfix: Initialise cutoff and target temperatures in allocate_cgpu if not
+initialised by the driver
+- Include temperature in thermal cutoff warning
+- Avoid automatic rescans when hotplug is disabled
+- nanofury: New "ledmode" RPC setting, to control LED behaviour
+- nanofury: Support for changing baud rate
+- nanofury: Detect number of chips, so multiple can be used
+- bitfury: When detecting chips, oscillate slower and tolerate clocks outside of
+a predefined range
+- Default --quit-summary to devs if there are more than 24 processors
+- Control printing of quit device summary with --quit-summary option
+- bitfury: Migrate all drivers to set_device_funcs interface
+- drv_set_defaults: Take devpath and serial params so matching by those can work
+- avalon: Replace avalon-options with set_device_funcs
+- klondike: Replace klondike-options with set_device_funcs
+- Replace temp-cutoff and temp-target parameters with set-device options
+- README.FPGA: Update documentation for Icarus driver
+- icarus: Replace icarus-timing with set_device_funcs (including wrapper for
+single icarus-timing case)
+- icarus: Replace icarus-options with set_device_funcs (including wrapper for
+single icarus-options case)
+- drv_set_defaults2 function to work with set_device_funcs
+- icarus: Clarify user_set flags with an enum
+- icarus: Clarify reopen modes with an enum
+- Accept parameter to set_device "help" as a request for help on a specific
+setting
+- set_device_funcs support for returning messages on success
+- RPC: Support for alternate message strings
+- bitfurce: Use new set_device_funcs interface
+- Refactor set_device interface to use option arrays
+- configure: Turn _Static_assert into a noop if the compiler lacks support
+- Store when the last getwork was retrieved and display it in the API summary.
+- bitforce: Consistently use fd -1 when device is not open
+- hashfast: Support for voltage in RPC stats
+- hashfast: Support for voltage displayed in ManageTUI
+- hashfast: Support for temperature
+- Trigger automatic rescans if an expected probe fails (assuming the device just
+needs more time to initialise)
+- Schedule rescan after a 1 second delay, should it be requested twice
+- hotplug: Wait 100ms before rescanning, so plugging in a hub can be handled at
+once and drivers have time to finish initialisation
+- Linux hotplug: Ignore EAGAIN and EINTR from epoll_wait so debugging works
+- Common hotplug_trigger function to use regardless of platform-specific
+implementation
+- Autoscan for new devices on Linux using libudev
+- Autoscan for new devices on Windows when DBT_DEVNODES_CHANGED message is
+broadcast
+- Replace suffix_string with a wrapper around format_unit3
+- Skip lowlevel-based scans in scrypt mode
+- README.GPU: Document new opencl autodetect behaviour
+- opencl: Enable by default in scrypt mode
+
+
+BFGMiner Version 3.10.1 - May 26, 2014
+
+- Upgraded Windows libraries:
+- - libcurl from 7.34.0 to 7.37.0 (and SSL support enabled)
+- - libjansson from 2.4 to 2.6
+- - libmicrohttpd from 0.9.30 to 0.9.35 (now Win64 also)
+- - libusb from libusbx 1.0.17 to 1.0.18
+- Update libblkmaker to 0.3.3
+- make-release: Copy submodules from local system
+- make-release: Automatically determine DLL dependencies to include
+- Bugfix: littlefury: Avoid memory leak for already-claimed devices
+- Bugfix: drillbit: Avoid 9-byte memory leak for already-claimed devices
+- Bugfix: lowl-ftdi: ft232r_close: Free device handle
+- Bugfix: bitfury: Avoid memory leaks when detect fails
+- Bugfix: klondike: Correct case of dname
+- Bugfix: hashfast: Set LIFE_INIT2 so a dead engine doesn't hold up the stats
+line
+- Bugfix: bitforce: Restore device name loading for FPGA Singles
+- Bugfix: Add config.h include to files missing it
+- Bugfix: swap32to?e: Ensure conditionals always have the same type
+- Bugfix: Protect prev_cancelstate variables under console lock
+- opencl: Silence warning about duplicate const qualifier
+- hashbuster: Avoid signed char problems in return status check
+- Bugfix: bfg_claim_any: Use a mutex to avoid races around device claims
+- SSM: Silence JSON parse error message for HTTP POST and TLS attempts
+- bifury: Defer precision loss until after checking osc6_bits value
+- opencl: bfg_clBuildProgram function to share common error handling (logging)
+code
+- opencl: Avoid printing empty build logs
+- Bugfix: opencl: Free allocated memory when done with it
+- Bugfix: Stratum: Use an error buffer on struct pool rather than the stack, so
+it remains valid for the lifetime of the connection
+- Bugfix: Reset tv_idle on pools after test failure
+- Bugfix: Ignore last work time if pool is known to be down
+- pick_unit: Avoid infinite loop when passed inf float
+- Bugfix: bitfury: Correct comment about how much of the nonce range chips
+process
+- Bugfix: Initialise getq (and stgd_lock) earlier so it is ready in case startup
+interactive pool-add tries to stage work
+- bitfury: Wait for two low frequency measurements before acting on a freq drop
+(in case of a single misread)
+- Bugfix: SSM: decref parsed JSON when done with it
+- knc: use_dcdc setting that Nov batch users can use to disable DCDC usage
+- knc: Replace numeric constants with KNC_CORES_PER_DIE, KNC_DIE_PER_CHIP, and
+KNC_CORES_PER_CHIP defines
+- Bugfix: knc: Actually skip over extra processors rather than infinite loop
+- Bugfix: Use rlim_t type for old_soft_limit so comparison with RLIM_INFINITY is
+correct on all platforms
+- Update alloca logic to work on more platforms
+- start-bfgminer.sh: Shell script to (re)start bfgminer in a background screen
+session
+- Bugfix: Handle disabled CPU support properly in various places
+- Bugfix: README.ASIC: KnCMiner: Use supported Angstrom feeds only
+- Bugfix: pool_active: Skip testing explicitly when we have a recent answer
+- RPC: Use struct timeval for mcast bind timer
+- Bugfix: Restore 2-minutes-past-last-work wait before terminating unused
+stratum connections
+- Partial: Bugfix: Turn spidevc into lowl-spi to fix building the knc driver
+without the bitfury driver
+- SSM: Silence JSON parse error message for HTTP attempts
+- Bugfix: Use UTF-8 for micro prefix internally (and in logging)
+- Consistently allocate space used for formatting numbers
+- util: utf8_len and utf8_strlen functions to quickly measure a character or
+string
+- Bugfix: README: Add missing driver build configuration options
+- Bugfix: renumber_cgpu: No need to copy dev_repr over itself (and trying to is
+undefined)
+- Move OpenCL kernel FAQ to README.GPU and clarify it a bit
+- Bugfix: Log work updates for all active pools in multipool mode
+- test_work_current: Cleanup
+- Bugfix: Differentiate pool_actively_desired from pool_actively_in_use for
+cnx_needed
+- Abstract pool_actively_in_use to handle multipool checking for multiple uses
+- Bugfix: antminer: Fix typo
+- Bugfix: renumber_cgpu: Rebuild repr strings to match new information
+- Bugfix: Skip final pool_active check in balancing modes (where pools switch
+around often)
+- Bugfix: Adjust quota GCD only after completely adding the pool, otherwise it
+will be ignored by the adjustment
+- Bugfix: opencl: Can only BFI_INT patch if using OpenCL binaries
+- SGW: Support for scrypt
+- README: Document VCOM low_latency flag and latency_timer sysfs attribute,
+which can help run more VCOM-based devices on low-end USB hosts
+- Add USB faqs.
+- Bugfix: Stratum: Wait a bit for a response before assuming the pool is hiding
+block contents
+- README: FAQ about Raspberry Pi issues
+- Check for when errno is set on windows as well as the windows variant for
+errors.
+- Partial: Handle interruptions to various select calls in util.c
+- Bugfix: configure: Only fail due to not having libusb, if the user really
+needs or wants libusb
+- Bugfix: Update help display to replace (U)tility with (I)ncome
+- Bugfix: Deduplicate % symbols in help display
+- Bugfix: Correct documentation for --shares option
+- cpu/scrypt: Fix last_nonce to be host endian also
+- Bugfix: cpu: Correct results found by scrypt algorithm
+- Bugfix: lowl-vcom: _get_osfhandle failure returns INVALID_HANDLE_VALUE, not
+NULL
+- Bugfix: lowl-vcom: Invalid fd checks should be for -1, not 0
+- Bugfix: SSM: Actually acquire and release extranonce1s
+- Bugfix: C reserves identifiers beginning with an underscore and uppercase
+letter or another underscore
+- Skip trying to submit shares in benchmark mode
+- Rework benchmark mode
+- Bugfix: configure: Only pull in lowl-usb for lowl-vcom if libusb is available
+- Bugfix: hashfast: Ensure size of hex data passed to applog is of type int
+- README.ASIC: Update "SGW" virtual device identifier to current "PXY"
+- Bugfix: klondike: Reenable hw error reporting on nonces found for unknown work
+- Bugfix: Expand deprecated work->subid field to int width, needed by klondike
+driver for tracking work
+- Bugfix: erupter: Sapphire detected as Emerald and Emerald not detected
+- configure: Remove duplicate sys/file.h check
+- Bugfix: httpsrv: Add missing includes for stdarg, stddef, stdio, and stdlib
+- hashbusterusb: Initialise send packets fully to avoid leaking uninitialised
+data to devices
+- Bugfix: Correct typo in --help ("AlgoritHms")
+- Bugfix: twinfury: Avoid crashing when next_work is not populated here
+- Bugfix: hashbusterusb: Close device after failures
+- Bugfix: hashbuster: Close device after failures
+- README: List --quota in options
+- README.ASIC: Update documentation for Avalon
+- Bugfix: Leave thr->*work alone when disabling non-minerloop_async devices
+- udev rules: Set flag so ModemManager ignores devices
+- bifury: Thermal overheat causes restart losing the clock, so resend it while
+temperature is over 80 C
+- bitforce: Explicitly assign indexes for bitforce_proto enum
+- Bugfix: RPC: MSG_PGASETOK does not have a string param
+- littlefury: Close device if there are any communication problems
+- littlefury: Abstract out littlefury_set_power
+- Bugfix: hashfast: Add missing serial_claim
+- Bugfix: drillbit: Add missing serial_claim
+- Bugfix: bifury: Add missing serial_claim
+- Bugfix: littlefury: Add missing serial_claim
+- Bugfix: Allocate all new devices completely, before trying to activate any
+(since the first processor may control the secondary ones)
+- Since scrypt miners tend to work at actual share difficulty, use that for
+diff1 counting
+- Bugfix: diff1 measurements should be increased by nonce difficulty, not share
+difficulty
+- drillbit: strtol into a long int so negative responses properly get an error
+- Rename *nonces variables to *_diff1 to reflect their nature better
+- Refactor diff1 records to properly weigh non-diff1 work
+- AUTHORS: Add Nico Oelgart
+- Fixed multiple XSS injection vectors
+- drillbit: Expand allowed external clock range to 0-65535
+
+
 BFGMiner Version 3.10.0 - January 15, 2014
 BFGMiner Version 3.10.0 - January 15, 2014
 
 
 - Downgrade official Windows build compiler to GCC 4.7.3.
 - Downgrade official Windows build compiler to GCC 4.7.3.

+ 1 - 1
README.RPC

@@ -447,7 +447,7 @@ https://www.npmjs.org/package/miner-rpc
 Feature Changelog for external applications using the API:
 Feature Changelog for external applications using the API:
 
 
 
 
-API V3.1
+API V3.1 (BFGMiner v4.0.0)
 
 
 Multiple report request command with '+' e.g. summary+devs
 Multiple report request command with '+' e.g. summary+devs
 
 

+ 2 - 2
configure.ac

@@ -12,8 +12,8 @@ dnl * any later version.  See COPYING for more details.
 
 
 ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
 ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
 ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
 ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
-m4_define([v_maj], [3])
-m4_define([v_min], [99])
+m4_define([v_maj], [4])
+m4_define([v_min], [0])
 m4_define([v_mic], [0])
 m4_define([v_mic], [0])
 ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
 ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
 m4_define([v_ver], [v_maj.v_min.v_mic])
 m4_define([v_ver], [v_maj.v_min.v_mic])

+ 36 - 0
debian/changelog

@@ -1,3 +1,39 @@
+bfgminer (4.0.0-0precise1) precise; urgency=low
+
+  * Various options (specifically, --temp-cutoff, --temp-target, and the various --<driver>-options) have been migrated to the --set-device interface.
+  * Automatic hotplug support for Linux and Windows.
+  * TUI: Redesigned pool information line to include share difficulties in multipool modes and timestamp of the last explicit work update (which are no longer logged).
+  * Forbid cross-domain server redirection by default, unless pool URI has #redirect in it.
+  * Stratum: Unauthenticated TLS support.
+  * Stratum: Improve support for stratum-compliant scrypt servers, while still cleanly handling the expectations of many broken servers.
+  * bifury: Support for OneStringMiner and Hex*Fury (see README.ASIC for notes about boards with buggy firmware).
+  * bitfury: Detect gen2 chips and report hashrate correctly.
+  * bfx: New driver for BFx2 Bitfury USB stick miners.
+  * bitforce: Support for Monarch 28nm cards, including PCI-Express support on Linux (see README.ASIC for setup instructions).
+  * drillbit: Add support for protocol version 4 devices.
+  * dualminer: New driver, supporting both SHA256d and scrypt ASIC mining.
+  * gridseed: New driver, supporting only scrypt ASIC mining.
+  * hashbusteravalon: New driver for Avalon2-based HashBuster devices, such as the HashBuster Alpha.
+  * hashfast: Display of temperature and voltage, as well as setting clock frequency at startup.
+  * icarus & cairnsmore: Since Block Erupters are far more popular, and less unprofitable, the erupter driver is now preferred over icarus and cairnsmore drivers. This means you must change -S all to -S icarus:all or -S cairnsmore:all.
+  * knc: Added a use_dcdc setting that can be used on Nov batch units to avoid triggering DCDC problems (--set knc:use_dcdc=no).
+  * nanofury: Support for new, multi-chip NF2 and NF6 units.
+  * RPC: cpu* and gpu* commands have all been deprecated; CPUs and GPUs are now accessible using pga* and proc* commands just like everything else.
+  * Stratum proxy: Support for GBT upstream pools, as well as scrypt algorithm.
+  * getwork proxy: Support for scrypt and included in Win64 binaries.
+  * opencl: Major updating of code to use set-device interfaces.
+  * opencl: Support for loading kernels by filename, provided they use a known interface. Loading most scrypt kernel should just work, and most SHA2 kernels can be enabled by adding a single comment to the CL source.
+  * opencl: Support for new "xintensity" unit by using --set-device OCL:intensity=x5 (for example).
+  * opencl: Raise max scrypt GPU intensity to 31, and enabled driver by default for scrypt.
+  * opencl: Add some optimised scrypt kernels by zuikkis and psw.
+  * scrypt: Fixed nonce-based (third) hashrate, and display sub-one share difficulties.
+  * Default log interval (and first hashrate rolling average) increased from 5 seconds to 20 seconds to make it more useful.
+  * Benchmark mode refactored to work for both SHA256d and scrypt, and with the third hashrate.
+  * Many uncommon options (including CPU and GPU mining related ones) have had their "shorthand" forms deprecated. A future release will remove (and perhaps redefine) these shorthands entirely.
+  * Bundled a start-bfgminer.sh shell script for *nix which will start/restart BFGMiner in a screen session, and can safely be used in init/cron tasks.
+
+ -- Luke Dashjr <luke+bfgminer@dashjr.org>  Mon, 26 May 2014 19:47:18 -0000
+
 bfgminer (3.10.0-0precise1) precise; urgency=low
 bfgminer (3.10.0-0precise1) precise; urgency=low
 
 
   * Support for AntMiner U1, Drillbit, and HashFast devices.
   * Support for AntMiner U1, Drillbit, and HashFast devices.

+ 1 - 1
debian/control

@@ -2,7 +2,7 @@ Source: bfgminer
 Priority: optional
 Priority: optional
 Section: misc
 Section: misc
 Maintainer: Luke Dashjr <luke_bfgminer@dashjr.org>
 Maintainer: Luke Dashjr <luke_bfgminer@dashjr.org>
-Standards-Version: 3.10.0
+Standards-Version: 4.0.0
 Build-Depends: build-essential, debhelper, autoconf, automake, libtool, libssl-dev, yasm, pkg-config, libudev-dev, libcurl4-openssl-dev, wget, unzip, libjansson-dev, libncurses5-dev, libudev-dev, libusb-1.0-0-dev, git, quilt, uthash-dev, libsensors4-dev
 Build-Depends: build-essential, debhelper, autoconf, automake, libtool, libssl-dev, yasm, pkg-config, libudev-dev, libcurl4-openssl-dev, wget, unzip, libjansson-dev, libncurses5-dev, libudev-dev, libusb-1.0-0-dev, git, quilt, uthash-dev, libsensors4-dev
 
 
 Package: bfgminer
 Package: bfgminer

+ 1 - 1
openwrt/bfgminer/Makefile

@@ -11,7 +11,7 @@ include $(TOPDIR)/rules.mk
 
 
 PKG_NAME:=bfgminer
 PKG_NAME:=bfgminer
 PKG_TITLE:=BFGMiner
 PKG_TITLE:=BFGMiner
-PKG_VERSION:=3.10.0
+PKG_VERSION:=4.0.0
 PKG_RELEASE:=1
 PKG_RELEASE:=1
 
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tbz2
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tbz2