@nextgens nextgens released this Oct 16, 2018 · 12 commits to next since this release

Assets 14

Freenet 0.7.5 build 1481 is now available

The Freenet Team is proud to release Freenet build 1481, the first
build to be compiled from gradle! This concludes work during the past
two years to make it easier for new developers to start hacking on
Freenet.

Your Freenet node should update itself from Freenet via the auto-update.
To install a new node, get an installer from
https://freenetproject.org/pages/download.html

This release rekeys the update URIs to ensure they are compliant with
RFC6979. It also splits off java 7 into its own update key for 1482,
so we can use java 8 starting with 1483. The updated keys have been
split into shares using ssss-split and distributed among core
developers to maximize our release management bus factor:
https://en.wikipedia.org/wiki/Bus_factor

We also added the Winterfacey theme and set sky-static as default
theme until Winterfacey got more testing. You can test switch between
themes on Configuration -> Web Interface

Thank you for using Freenet!

And a special thank you to DC* (desyncr) who tracked down an OOM so we
could finally fix it and release after 6 weeks of fruitless search!

  • Arne Babenhauserheide, current release manager

About Freenet:
Freenet is free software which lets you anonymously share files, browse
and publish "freesites" (web sites accessible only through Freenet) and
chat on forums, without fear of censorship. Freenet is decentralised to
make it less vulnerable to attack, and if used in "darknet" mode, where
users only connect to their friends, is very difficult to detect.
See https://freenetproject.org/pages/about.html


Developer changelog:

2018-10-16

Changes in 1481:

Switch to gradle. If you block network access of your development box,
you can use ./gradlew --offline jar test (you will then need to get
the dependencies yourself).

Switch from JNI (Java Native Interfaces) to JNA (Java Native
Access). This might allow getting rid of hard-to-build
freenet-ext.jar.

This also means that you need jna-4.2.2.jar and jna-platform-4.2.2.jar
in your freenet folder. The auto-updater takes care of that for you.
If you update manually by copying in new jar-files, you need to adapt
the classpath in wrapper.conf or in run.sh (if you do not use the wrapper).

Added a workaround for JNA bug in multi-user system: move tempdir into
the freenet folder: java.io.tmpdir=./tmp/; Needed until
java-native-access/jna#985 is fixed
upstream.

Changes to update keys: Rekey the update URIs to ensure they are
RFC6979. Split off java 7 into its own update key for 1482, so we can
use java 8 starting with 1483. The updated keys have been split into
shares using ssss-split and distributed among core developers. See
https://github.com/freenet/scripts/blob/master/generate_autoupdate_key

Add Winterfacey theme. Set sky-static as default theme until
Winterfacey got more testing.

Further changes:

  • Fix commons-compress bug, might help fix the Gentoo ebuild.
  • Execute in background mode (reduced I/O priority) on windows NT6+.
  • Override list request identifier
  • use fallocate
  • ipv6 fixes
  • fix warnings
  • optimization
  • Persist "Bookmark Updated" notifications across restarts
  • minimum bandwidth increased to 10KiB again
  • undo update of pinned SSL certificates (site no longer exists)
  • Add support for GIF89a
  • Fix wrapped FCP message
  • Add config option to allow caching of CHK and SSK keys
  • bookmarks: fix jumping layout (missing activelink)
  • reduce thread usage.
  • Prepare for Java 8 - 1482 will be the last build to support Java 7.

A heartfelt thank you to all involved!

And a special thank you to DC* (desyncr) who tracked down an OOM so we could finally fix it and release after 6 weeks of fruitless search!

  • Arne Babenhauserheide

shortlog:

Arne Babenhauserheide (7):
add task ./gradlew tar, still pretty rough
wrapper.conf: add JNA tmpdir on update if it is not yet set
commit COMPRESS-449 workaround, see https://freenet.mantishub.io/view.php?id=6921, thanks to dennisne
always use BouncyCastle in KeyGenUtils
use a SkipShieldingInputStream as commons compress workaround
use the SkipShieldingInputStream
gradle: apply compatibility mode to all classes, not just to Version.java

Arne Babenhauserheide (freenet releases) (24):
update version to 1480 to be in sync with master
remove unnecessary TODO
remove stray files
remove stray import
Update default bookmark editions
add 1480 section to NEWS
increase minimum bandwith to 10KiB again
adjust wizard and comment to increased min bandwidth
fix typo (found by TheSeeker)
Build 1481
undo SSL certificates switched to AWS
add jna-platform and order
Update default bookmark editions
Update default bookmark editions
Build 1481
Update default bookmark editions
KeyGenUtils: re-use the bouncy castle instance to avoid the memory leak.
Update default bookmark editions
Revert "Fix code for non-DOS systems", because hiding the files makes them write-protected, so the original commit has to go.
Revert "bug6562: mark temporary files as hidden", hidden files are non-writable under windows, see https://bugs.eclipse.org/bugs/show_bug.cgi?id=194216 — thanks to dark_mater on FMS to reporting this.
Revert "Fix code for non-DOS systems", because hiding the files makes them write-protected, so the original commit has to go.
Revert "bug6562: mark temporary files as hidden", hidden files are non-writable under windows, see https://bugs.eclipse.org/bugs/show_bug.cgi?id=194216 — thanks to dark_mater on FMS to reporting this.
re-apply 1480 improvements to localization
only lock the crypto provider in KeyGenUtils to BouncyCastle on Java 7, where missing ECC in SunCE leads to failing tests.

Bert Massop (42):
Rewrite BitArray to use BitSet internally
Use LinkedList instead of our own DoublyLinkedList
Move LimitedEnumeration into its sole using class
Remove unused LimitedRangeIntByteArrayMap
Deprecate SortedIntSet, document its peculiarities and simplify
Remove unused Timer
SessionManager: remove dead sanity check
Improve SparseBitmap efficiency
Integer.hashCode() is not available on Java 7; just use the value
Add default serialVersionUIDs
Fix rawtypes and unchecked warnings
Remove redundant casts
Fix warnings about missing @deprecated
Suppress fallthrough warnings in PNGFilter
Implement hashCode where equals is overridden
Remove unnecessary Math.min()
Fix SRGA breakage due to misinterpretation of array generics
Improve clarity and brevity of SortedIntSet
Add unit test for SortedIntSet
Make the open file descriptor count non-static for unit tests
Remove writeFilter: it is never used and implementations are broken
Implement GIF87a filter
Also remove writeFilter-related advice messages
Add support for GIF89a
Throw user-readable exception on EOFException
Fix missing block termination
Add support for Netscape GIF Loop Extension
Improve GIFFilter documentation
Add GIFFilter error messages to l10n
Update GIFFilter status
Simplify condition
Use IMAGE_SEPARATOR constant appropriately
Actually filter GIF87a instead of just preparing for it
Add unit test for GIFFilter
Get rid of some asserts; clamp the values instead
Add wildcard copy for filter test files
Make SSL work on Java 8+
Extend self-signed certificate life to 10 years
Switch to non-outdated high-security SSL crypto
Improve SSL error messages
Factor out magic values for SSL
nextgens suggested to use 256-bit ECDSA instead

Carlo Alberto Ferraris (4):
Have fred execute in background mode (reduced I/O priority) on windows NT6+ This patch uses JNA (3.2.7) to call the native OS libraries. jna.jar is not included in the patch but can be fetched from http://java.net/projects/jna/downloads
Fix small review issues
Use proper exception
Add comments and license.

D-sha (4):
Add nice links to README.md
Fix donation link in README.md
tidy README.building.md
more tidy README.building.md

DC* (1):
Fix memory leak with BouncyCastleProvider

David ‘Bombe’ Roden (12):
Fix wrapped FCP message
Override list request identifier
Add test for FCP message wrapper
Fix wrapping a null FCP message
Don’t send unwanted list request identifiers
Remove parameter that’s always “true”
Simplify methods that previously used the parameter
Make handleDownload method private
Add config option to allow caching of CHK and SSK keys
Fix code for non-DOS systems
Don’t show HTL 0 on stats page
Remove empty table row

Dean (1):
Update README.md

Florent Daigniere (98):
Initial gradle support
Update the travis build-file, make it use/cache gradle arctefacts
Fix the unit tests not passing
get rid of it since it's not used yet
Ensure that Travis caches properly
fix version-string updating
fork a JVM for every test
give up on PooledFileRandomAccessBufferTest
Just disable the failing test when we know it won't succeed
try bertm's new patch
Replace our NativeThread JNI with JNA
Use posix_fallocate()/fallocate() where possible
doh
untested code factoring out the legacy fallocate
CPUID isn't used anymore
use rfc5014: IPV6_PREFER_SRC_PUBLIC
Don't output to wrapper.log if it's a small resize
set IPV6_PREFER_SRC_PUBLIC regardless of the bindTo type
Add JNA to ant too
bug6668: NPE while try hide not-enough-disk-space alert
Use java7 try syntax
Add mockito to the ant build
fix a warning
Tweak the travis buildfile
specify which JDK was used in the manifest
Fix a potential problem with fallocate()
add a few seconds to ensure it happens
Fix posix_fallocate() on POSIX
Turns out that OSX isn't POSIX
Replace a HashMap by a ConcurrentSkipListMap
Remove the socket-timeout for fproxy
Take Bombe's comments into consideration
Take Bombe's comments into consideration (round2)
More cosmetic changes
We don't need that if
Add logging
Implement the osx/linux equivalent
Display the default value as intended
bug6562: mark temporary files as hidden
Bad things happen if ipv6 isn't available
Handle EOPNOTSUP
s/operating/file/ system
handle ENOSYS too
get rid of ant-buildfiles
add gradle.properties to .gitignore
Ensure that we don't have to truncate the file after fallocate()
It's only safe if the total length is above 4KB!
It's only safe if the total length is above 4KB!
Error codes aren't the same cross-platform
get rid of IDE config too; get gradle to generate them for you
add gradle wrapper
move gradle-witness into gradle's folder
Re-enable RSA-based ciphers
Re-enable RSA-based ciphers
Upgrade to BC 1.56
Update the BC tests for rfc7539 compliance
Fix a potential click-jacking vulnerability
update the javadoc on commit
doh
only build/deploy it with java7/oracle (once)
This prevents caching
try to dynamically update transifex
try with the JVM that does build successfully
add skip_cleanup
Auto-upload the l10n for translation when it hits next
ArneBab wants to do it manually
doh
download freenet-ext from the new repo
Update Version,bookmarks,plugins and l10n from master
clarify NEWS.md
update NEWS.md
Bump BC version to 1.57
bump version number to 1478
build against jdk8 and jdk9
turns out that openjdk9 is not a thing yet
upgrade to BC1.58
build the javadoc on JDK8
update the l10n
fix useless warning
Fix a typo in the Norvegian l10n
update to gradle 4.2.1, simplify the build script
tell travis to deploy tags
use openjdk instead
don't fail on javadoc errors
avoid running the tests twice
do the opposite since we can't build the javadoc that way
bookmarks: fix jumping layout (missing activelink)
doh; we need that to be set to false for reproducible builds
Get travis to deploy snapshots to github-releases
ignore the result of building the javadoc
doh
Ensure that there is a single Version file
ensure that compileVersion runs after compileJava
fix the dependency
turns out that you need to set it twice
display the SHA-256 hash now that it ought to be reproducible
the assemble task messes the checksum up; not sure why yet
94c367e was missing the dep's checksum

GNU Emacs User (4):
fix compile error
try adjusting only jna.tmpdir, not java.io.tmpdir
need java.io.tmpdir=./tmp/ jna.tmpdir does not work.
actually use the default theme as initial theme; switches to sky-static

Matthew Toseland (5):
Factor out maxCountWaiting()
Don't send RecentlyFailed until we've visited half the routing table, but at least 3 peers.
Consistency, avoid locking twice
1/4 of routing table max
And no more than 10 peers.

Stephen Oliver (2):
Build: add jna-platform for Windows-specific types
Use JNA interface mapping instead of direct in ProcessPriority on Win

Steve Dougherty (17):
MemoryLimitedJobRunnerTest: avoid high thread counts
JVMVersion: fix spelling of "beyond"
JVMVersion: add distinction between EoL alert and updater
Revert "Merge remote-tracking branch 'origin/much-less-recentlyfailed' into next"
gradle: fix typo in wrapper verification configuration
README: focus on developers and update for Gradle
README: link Travis build badge to Travis
README: link Coverity badge to Coverity
README: fix Coverity badge link
README: remove errant dash
build: upgrade Bouncy Castle to 1.59
dependencies: add JNA 4.2.2 dependency
dependencies: upgrade Bouncy Castle to 1.59
Revert "Build 1481"
build: enable deterministic tars
build: use bzip2 compression for source archive
Rekey the update URIs to ensure they are RFC6979

TheSeeker (1):
fix memory limit setting on windows v2

Zero King (1):
Fix typo

blacklightwork (1):
Update theme.css

drak@kaverne (2):
add Winterfacey theme
fix binary or used instead of boolean or

xor-freenet (16):
Class IfNull: Deprecate in favor of Java 7 providing the same
Documentation: Convert some comments to JavaDoc
Documentation: Deduct purpose of a constructor...
Documentation: Fix obsolete claims about purpose of some constructors
Remove constructors which were needed only by db4o
BookmarkItem: Remove unused constructor...
BookmarkItem: Store the belonging BookmarkManager
BookmarkItem: Persist "Bookmark Updated" user alerts across restarts
BookmarkManager: Fix losing update alerts if shutting down <5 min after them
FProxy: If a plugin throws during startup then show the stack trace
FProxy bookmarks: Mark updated ones with bold link
FProxy bookmarks: Add button to dismiss update notifications
FProxy bookmarks: After clicking the dismiss button go back to same section of page
Fix whitespace to adhere to Google Java Style Guide
Remove trivially obvious comment
TimeUtilTest: Test setTimeToZero()