Thynix
released this
19 Mar 19:25
Freenet 0.7.5 build 1472 is now available.
This is the last build to support Java 6! The next build will require
Java 7 or higher. Nodes running Java 7 or higher and using the official
update key will now use a new update key. Nodes on Java 6 remain using
the old update key and will not be updated to further builds. Thanks to
yadevel for fixing the regression this release was blocking on!
This version was initially partially released as build 1471 - it was
released to the website but not auto-update. Build 1472 fixes a bug
which when using Java 6 prevented nodes from starting for the first
time. It did not break existing installations.
Highlights:
- Fix uploads stalling when using MAXIMUM physical security.
- Fix lots of "setNativePriority(X) has failed!", which was caused by a
serious thread priority problem. This might fix nodes unexpectedly
losing peers.
- Order alerts within a category by time: if you have lots of messages
from darknet peers they will remain nicely sorted.
Translations:
- Add partial Greek translation.
- Update German, Bokmål, Brazilian Portuguese, Simplified Chinese, and
Traditional Chinese translations.
- Fix Bokmål localization loading.
Also:
- Remove Gantros Index because it stopped updating.
- Remove Linkageddon because it stopped updating.
- New version of UPnP to fix some instability and compatibility
problems. Thanks to 007pig we have a new UPnP plugin in development
which supports UPnP2, but it is not yet included. [2]
- New version of KeyUtils.
WebOfTrust now has an updatable testing version built and maintained by
xor. To use it, unload WebOfTrust, then load "WebOfTrust Testing
Versions" on the Plugins page. Versions built by xor will not work with
Java 6.
Sites can set favicons with <link ref="icon" type=... href=...>. (type
could be "image/x-icon")
Extensive review and improvement of English source strings and French
and Spanish translations. Tests for and fixes of value substitution in
translations. Thanks Vaughan Woodzell!
The default theme is now sky-static instead of clean-dropdown. This
looks less outdated, though not modern.
There is now a caching layer on the store. This should significantly
reduce I/O load. [0]
Fix default bookmarks missing the "software" category since build 1470.
If you don't see this category please re-add the default bookmark set
from the bookmark editing page.
IpToCountry database is updated. (This allows providing the country
flags on the peers pages. It is local to each instance and does not
contact an external service.)
WebOfTrust is updated to build 18. Its changelog is separate, [1] but
one of the major changes is incremental score recomputation which
requires roughly 3% of the time of a full recomputation.
Add partial CSS3 support, including viewport lengths. Thanks, Ben
Green!
[0] https://github.com/freenet/fred/pull/157
[1] USK@QeTBVWTwBldfI-lrF~xf0nqFVDdQoSUghT~PvhyJ1NE,OjEywGD063La2H-IihD7iYtZm3rC0BP6UTvvwyF5Zh4,AQACAAE/flog/27/Content-617C8FC.html
[2] https://github.com/freenet/plugin-UPnP2
[enumerate user-facing changes]
Thank you for using Freenet!
- Steve Dougherty
Developer changelog:
2016-03-19
Changes in 1472:
This is the last build to support Java 6! The next build will require
Java 7 or higher. Nodes running Java 7 or higher and using the official
update key will now use a new update key. Nodes on Java 6 remain using
the old update key and will not be updated to further builds. Thanks to
yadevel for fixing the regression this release was blocking on!
This version was initially partially released as build 1471 - it was
released to the website but not auto-update. Build 1472 fixes a bug
which when using Java 6 prevented nodes from starting for the first
time. It did not break existing installations.
Highlights:
- Fix uploads stalling when using MAXIMUM physical security.
- Fix lots of "setNativePriority(X) has failed!", which was caused by a
serious thread priority problem. This might fix nodes unexpectedly
losing peers.
- Order alerts within a category by time: if you have lots of messages
from darknet peers they will remain nicely sorted.
Translations:
- Add partial Greek translation.
- Update German, Bokmål, Brazilian Portuguese, Simplified Chinese, and
Traditional Chinese translations.
- Fix Bokmål localization loading.
Also:
- Remove Gantros Index because it stopped updating.
- Remove Linkageddon because it stopped updating.
- Tighten security by removing old deprecated DSA-based crypto and
compatibility, and always include identity= in opennet noderefs.
- Fix JVM version string parsing.
- Fix and add test for broken localization substitution token pairs.
- Due to node reference changes packets for setting up connections to
opennet seednodes are now larger. If you set Freenet's MTU lower than
its default (1280 bytes) this may prevent you from connecting to seed
nodes. If you experience this, please raise the MTU.
- New version of UPnP to fix some instability and compatibility
problems. Thanks to 007pig we have a new UPnP plugin in development
which supports UPnP2, but it is not yet included. [2]
- New version of KeyUtils.
WebOfTrust now has an updatable testing version built and maintained by
xor. To use it, unload WebOfTrust, then load "WebOfTrust Testing
Versions" on the Plugins page. Versions built by xor will not work with
Java 6.
Sites can set favicons with <link ref="icon" type=... href=...>. (type
could be "image/x-icon")
Extensive review and improvement of English source strings and French
and Spanish translations. Tests for and fixes of value substitution in
translations. Thanks Vaughan Woodzell!
The default theme is now sky-static instead of clean-dropdown. This
looks less outdated, though not modern.
There is now a caching layer on the store. This should significantly
reduce I/O load. [0]
Fix default bookmarks missing the "software" category since build 1470.
If you don't see this category please re-add the default bookmark set
from the bookmark editing page.
Fix problems caused by bookmarks without a name. Adding bookmarks
without a name is not allowed, and loaded bookmarks without a name will
be renamed (otherwise they would prevent modifying any bookmarks).
Thanks to _xiaoyu for the report!
IpToCountry database is updated. (This allows providing the country
flags on the peers pages. It is local to each instance and does not
contact an external service.)
WebOfTrust is updated to build 18. Its changelog is separate, [1] but
one of the major changes is incremental score recomputation which
requires roughly 3% of the time of a full recomputation.
Add partial CSS3 support, including viewport lengths. Thanks, Ben
Green! See the merge commit - 143cb856f5dc8aee7457eb027fac11c34d18bd2c
- for details.
FCP: Add Identifier to all messages sent by ListPersistentRequests.
Note to plugin authors: we removed KeyListenerConstructionException
because it was never thrown. Plugins that handled it will need to be
updated. This is (largely) why KeyUtils updated.
- Only update essential plugins if we have to. This should avoid
connectivity problems for installs for which plugins are necessary to
connect.
- Show peer locations, not distance in peer location histogram on the
statistics page in advanced mode.
[0] https://github.com/freenet/fred/pull/157
[1] USK@QeTBVWTwBldfI-lrF~xf0nqFVDdQoSUghT~PvhyJ1NE,OjEywGD063La2H-IihD7iYtZm3rC0BP6UTvvwyF5Zh4,AQACAAE/flog/27/Content-617C8FC.html
[2] https://github.com/freenet/plugin-UPnP2
KeyUtils v5026:
---
Bert Massop (1):
Remove references to removed KeyListenerConstructionException
Steve Dougherty (1):
Version 5026
saces (1):
show fpi and gh bugtracker
UPnP 10007:
---
Bert Massop (5):
Fix NPE when binding SSDP socket does not succeed.
Fix NPE when a service provider fails to list its services
Language: use UPnP instead of UP&P
Fix NPE when no ports have been forwarded
Fix connection reset on case sensitive Host HTTP header name
Juiceman (2):
Reformat codebase using Jindent tool
Remove extra spaces
Steve Dougherty (2):
Add readme
10007: improve stability
Changes from 1470:
---
Ben Green (8):
Altered test to reflect the correct values for box-sizing.
Added CSS Defaulting Keywords to Filter, no need to explicitly define: initial, inherit and unset for all CSS properties as the standard says they are valid for all.
CSS Properties: inherit, initial and unset are valid for all elements, they are so-called CSS Defaulting Keywords. As such I have made the CSSPropertyVerifier will always accept them if they are the only property. All inherit keywords also removed from the arrays where they were present in CSSTokenizerFilter.
Renamed function to better describe how it works.
Added some comments, corrected a typo and made a slight optimisation
Added support for more attributes related to CSS3: UI and Flexbox. nav-* attributes require a valid selector which can be matched by HTMLelementVerifier, made HTMLelementVerifier static so it can be used in CSSPropertyVerifier to verify an se type (isSelector) for nav-down, nav-left, nav-right and nav-up.
Added support for attribute box-suppress to complete support for CSS3 Display
Fixed Generic ArrayList Constructor for Java 6 compatibility. Changed line endings and allowed numbers to look like this: "1.em"
Benjamin Green (6):
Added additional units to isLength() method. In CSS3 they are variable length 1-4 chars.
Added box-sizing CSS3 property to filter.
Added CSS3 flex attributes and values to the filter. Added tests for the above.
Style updates (K&R Style ifs). Commented code removed (sorry). Also: Changed "lengthValue = value.substring(0, value.length());" to "lengthValue = value;" strings are immutable.
Style changes again: Missed an if in the previous commit.
Made a mistake in the acceptable values for box-sizing attribute.
Bert Massop (5):
Simplify RGA removeRandomExhaustiveSearch wakeupTime conditions
HTMLFilter: fix processing of reset input element
Show peer locations, not distance in peer location histogram
Fix JVM version comparison for version >1.9 and build >99
Reduce memory usage of SplitFileInserterStorageTest
David ‘Bombe’ Roden (15):
Fix potential resource leak
Allow icons in <link> tags
Add method to wrap message with list request identifier
Add list request identifier to end list message
Send list request identifier with all replies to a list request
Make field “Identifier” optional for ListPersistentRequestsMessage
Don’t create new message if no identifier needs to be added
Remove check for impossible condition
Copy hashcode correctly
Use common base class for input and output streams
Remove useless exception rethrows
Remove exception that was never thrown
Fix wrapped FCP message
Override list request identifier
Fix wrapping a null FCP message
Florent Daigniere (51):
How much do we bet?
assertTrue(false); => fail();
Revert "Slightly safer locking". It's not.
Fix CID-122355: Resource leak in Metadata.java
Fix CID-74397: Indefinite wait in RealCompressor
Fix CID-122317: Indefinite wait in FCPConnectionOutputHandler
RealCompressor: previous commit was wrong; better fix to land next release
Simplify RealCompressor
bug6591: improve compression algorithm choice
get rid of useless variable
Junit4 is already added 3 lines below
upgrade to BC 1.52
UPnP: require v10006 after purge-db4o
USKRetriever: remove superfluous logging
Improve RealCompressor
bug6600: minimumVersion for connection essential plugins
bug4490: Recommended version support in official plugins
Be smarter about the maximum heap size on 32bit systems
turns out that sun.arch.data.model might not exist
toad is right: this isn't what we want
toad thinks that this is superfluous
Thanks for the code review toad!
remove migration code from 2011
remove useless import (thanks bombe)
Fix bug #6623 : Wrapper.log: Lots of "setNativePriority(X) has failed!"
Deprecate old variables; One should use the enum
Document NativeThread.dontCheckRenice
Only update essential plugins if we have to
Actively prevent newer plugins from being deployed
Remove DiffieHellman related code (pre-neg9)
Remove DSA and compat code from PeerNode*
Stop sending a DSA signature
Use P256 pubkey as identity
Don't re-use a MD returned to the pool!
Remove more dead-code
Major modification of DSA keys in references
Always send/parse the identity line on opennet
Remove more dead code
Implement the workaround suggested by toad
Second part of the workaround
Setup CI at https://travis-ci.org/freenet/fred/
Integer.compare() is java7 ... thanks @Bombe for spotting it
try the container-based infrastructure
Critical bugfix following #440
Remove dead code (DHGroup)
Remove some more pre-negtyp9 code
Remove more deadcode as suggested by IDEA
Improve locking for nonce-handling
Fix logging on DarknetPeerNode
We need to write to the peer-file when we add a darknet peer; duh!
Ensure that we always write the peer file when we add a peer
Lucas Phillips (1):
change recommendation of Truecrypt to Wikipedia's list of FDE software
Matthew Toseland (115):
Use synchronized(this) for size etc (no need for a read/write lock here), check for size in pushAll loop without having to lock again.
We need to synchronize when accessing startJob, *NOT* when calling pushAllCachingStores.
Document a bit.
Do not change startJob in the "too full" case.
Rename and clarify queuedJob
runningJob prevents us from running pushAllCachingStores twice at once. queuedJob prevents us from queueing two or more jobs to write everything in the future.
Better for unit testing.
Doh!
Trivial tidyup of code.
Paranoia.
Clarify
Increase number of keys to write before rotating, add FIXME.
Don't queue job twice if over the limit, reduce code duplication.
FIXME
Use return value of -1 to indicate empty, and document.
Make isEmpty() package local so we can use it for unit tests but not other stuff.
Move CachingFreenetStore* to src/freenet/store/caching/
Move CachingFreenetStoreTest too
Doh, fix accidental change of comparison, broke caching (would always not cache).
Factor out getTotalBlockSize() to StoreCallback
Add testCollisionsOverMaximumSize
Add SleepingFreenetStore, useful for a test.
Test all the possibilities for pushLeastRecentlyBlock, *including the tricky one where it returns 0*.
Increase the delay. Maybe this will make Jenkins happy. It works here even with 200ms.
Try a different executor.
Don't use Future, it appears to confuse Jenkins. :(
Longer delay, again for Jenkins.
Javadocs.
Clarify
Create ProxyFreenetStore, base class for CachingFS, SleepingFS etc.
Implement WriteBlockableFreenetStore, use it to make test both faster and more reliable. SleepingFS is a really dirty hack, deprecate it.
Add waitForSomeBlocked(), wait until a write is actually blocked before starting another one.
Use Lock/Condition. Overkill, but not necessarily any uglier.
Use Future, now that the problem is solved.
block cannot be null here, thanks findbugs.
Always close the InputStream
Slightly safer locking
Reduce priority for updater inserts except in most critical cases.
Be much, much less aggressive about inserting the main jar blob.
Fix RGA.wakeupTime never getting set.
Fix
Delete unused code.
Tidy up
Javadocs.
Document
Add isOpennetForNoderef(), cleanup.
Remove some opennet-specific code from PeerNode.
Factor out writePeers()
Factor out writePeers(), don't write darknet peers for seeds
Move fromAnonymousInitiator to a method too.
Remove PeerManager argument too.
Get rid of OutgoingPacketMangler argument too.
Don't set mustCheckpoint if not checkpointing
Check for checkpointing in lock() too.
Wake up lock()'ers and clear flag (bug 6612)
Improve logging
Logging
Logging
Add test for disabling checkpointing (bug #5512)
Purge LocationUIDPair.
Cleanly handle dropping too old peers, tell the user.
Prevent logging code from breaking startup
Add missing file, sorry!
Re-check the stores list periodically
Re-check the stores list periodically
Cleanup: Factor out pushOffThread*
Only queue one job in the >90% case.
Move variable declaration inside look (Bombe)
Use spaces not tabs on changed lines
Replace spinning wait in test with proper wait
Rename variables isSelector -> isIDSelector
Only allow ID selectors.
Fix test: Class selector no longer allowed in nav-*
Explain issues here
Improve cursor handling (2 coordinates or none)
Do not accept empty for && expressions (+explain)
align-items doesn't accept content-distribution
Fix justify-items and add tests
Fix leaking a message when rejecting because not routable
Comments: Explain what identity is for nowadays
Don't reuse key material (depends on #440)
Fix comment
Remove outdated comments.
Indent.
Remove unused variables
Simplify and rename method
Match by pubkey hash, not obfuscation key
Match by pubkey not identity (fixes opennt bug)
Remove now unused getIdentity()
Remove unused code
Remove more unused obsolete code
Remove out of date comment
Remove unused method
Factor out dropped peers UI into a useralert
Rename l10n strings
Fix l10n string typo
Fix nondeterminism
Remove more non-determinism
Need slot filters for SSK tests
Need a real delay
Fix NPE on creating a new node, argh!
Indent.
Fix regression in refactoring (someBroken)
Log after saving the .broken file
Send the new format UOMAnnouncement message for legacy
Get rid of all the special treatment of freenet-ext.jar
Get rid of old UOMAnnounce message
Send the legacy jar if necessary in UOM
Remove some more old-UOM cruft
Fix the UOM URI as well :(
Argh, fix normal UOM case (no transition)!
Broadcast only to appropriately versioned nodes
Send the correct announcement on connect too
Send UOMAnnouncement only after we know the other side's version
Delete bogus/outdated check which breaks transition UOM
Pascal666 (2):
Fix improper indenting & logging bug caused by it
Add instructions for installing dependencies on CentOS
Simon Vocella (30):
improving locking in pushAll
add testOverMaximumSize in CachingFreenetStore that test the case when we are going over maximum size
change in textOverMaximumSize in CachingFreenetStore: SaltedHashFreenetStore is lossy, since it only has 5 possible places to put each key, so change howManyBlocks in howManyBlocks*5
CachingFreenetStore: use LRUMap instead of two Treemap and change the logic in pushAll
add CachingFreenetStoreTracker that It's a single counter, a single flush job that gets called when it's full
add CachingFreenetStoreTracker in Node
add CachingFreenetStoreTracker in CachingFreenetStore and change some methods
fix tests in CachingFreenetStoreTest
CachingFreenetStoreTracker: add unregisterCachingFS, lock in register/unregister and take snapshot in pushAllCachingStores
CachingFreenetStore: add unregisterCachingFS in close and add registerCachingFS in start
CachingStore: setUserAlertManager set the property in the *underlying* store
CachingFreenetStore: now pushAll return the number of bytes that it pushed down to the *underlying* store
CachingFreenetStoreTracker: fix in pushAllCachingStores and unregisterCachingFS, improvements and fixing in add
CachingFreenetStoreTest: add one check in testOnCloseSSK and testTimeExpireSSK and waiting the flushing of the cache in testOverMaximumSize
CachingFreenetStoreTracker: use toArray(new CachingFreenetStore[cachingStores.size()]) to avoid casting from Object, delete pushAllCachingStores call direclty in add
CachingStore: change pushAll in pushLeastRecentlyBlock
CachingFreenetStoreTracker: do while{} in unregisterCachingFS and pushAllCachingStores
CachingFreenetStoreTest: check where is the block in testOnCollisions
CachingFreenetStoreTest: delete two useless lines
CachingFreenetStore: add size to avoid useless cycles in CachingFreenetStoreTracker
CachingFreenetStoreTracker: now use the size of CachingFreenetStore
delete useless size in CachingFreenetStore and use isEmpty
use isEmpty instead of getSize in CachingFreenetStoreTracker and push a limited number of keys instead of one push in add
CachingFreenetStoreTracker: add "|| maxSize == 0" in the assert in add() function because if maxSize == 0 we have a queuedJob = false
use a "final int sizeBlock;" set at construction, instead of getSizeBlock() in CachingFreenetStore
CachingFreenetStore: peekKey() can change, if a block is re-added due to a collision (with overwrite=true). So push* needs to keep the key for the block it's just written, check that the blocks are equals(), check the return value from removeKey(), and THEN add the bytes to the counter.
CachingFreenetStoreTracker: add() have a lower threshold, say 90% of maxSize, when it will start a write job, but still accept the data.
CachingFreenetStore: If backDatastore.put() throws, we should probably still remove the key. We don't want to keep looping forever. This is especially important for KeyCollisionException.
CachingFreenetStore: always remove the key, even if we get IOException and check if the last version of the block are equals to the block pushed. it might have changed if there was a put() with overwrite=true. If it has changed, return 0, i.e. don't remove it
CachingFreenetStore: error in equals, correct
Steve Dougherty (54):
Close output stream
Update Spanish, French, and Brazilian Portuguese translation
Refine English strings
MessageAuthCode: fix JVM-version-dependent test failure
Fix Norwegian Bokmål path and configuration
themes: avoid styling headers as normal text
l10n: remove unused strings
l10n: polish phrasing and fix typos
l10n: fix spelling of "compromised"
l10n: reduce configuration description aggression
l10n: polish phrasing and fix typos
Convert NEWS to Markdown
NEWS: remove 1468 tray download mention
Fix spelling of "infeasible"
CONTRIBUTING: document adding news entries
l10n: remove unused string
l10n: replace "meta-string" with "path component"
l10n: remove duplication; fix phrasing in SSL options
l10n: avoid duplication; fix phrasing
l10n: polish phrasing
l10n: fix mailing list address
l10n: clarify progress page purpose
Move Gantros' index to top bookmark
BookmarkEditor: reduce code duplication
BookmarkEditor: disallow empty bookmark names
Parse empty bookmark name as "Unnamed Bookmark"
Add bookmark name NEWS entry
default bookmarks: move Enzo's Index to the top
Update WebOfTrust to build 18
Update translations
Remove untranslated strings
Update Freemail to v0.2.7.2
Update FlogHelper to v35
Update KeyUtils to v5025
BaseL10n: fix Bokmål slug
reformat canAutoconfigureDatastoreSize()
fix loss of precision
Update translations
test: fix resource path on Java 6
l10n: remove unused somePeersDisconnectedBlockedTooLong
remove 1421-specific legacy updater
DroppedOldPeersUserAlert: fix ".broken" suffix duplication
Update UPnP to 10007
Update KeyUtils to v5026
l10n: add Greek translation
Update translations
l10n: fix token mismatch in Traditional Chinese
updater: change old update key to new for Java 7+
fix offering legacy jar UOM using the stable key
Update default bookmark editions
Build 1471
NodeUpdateManager: fix using SSK on Java 6
update TRANSITION_BUILD for build delay
Build 1472
Vaughan Woodzell (16):
Add unit tests for BaseL10n
Refactor a little to combine calls to addL10nSubstitutionInner()
Avoid returning partially-populated node on l10n error
Always clone node before adding in addL10nSubstitutionInner()
Remove unused key parameter from addL10nSubstitutionInner()
Use fallback string on error in addL10nSubstitutionInner()
Add test for invalid l10n strings
Fix broken l10n substitution variables
Return key from addL10nSubstitution() if fallback fails
Pass l10n parse exception into Logger.error()
Separate BaseL10n.getFallbackString() from getDefaultString()
Separate l10n fallback logic from value handling
Move exception handling out of BaseL10n.tryGetL10nSubstitution()
Remove unneeded null check from BaseL10n.addL10nSubstitution()
Improve method names and javadoc in BaseL10n
Copy l10n test properties in unit-build
drak@kaverne (23):
l10n: suggest store values between 100MiB and 20GiB
Improve suggested store size wording
wizard: improve datastore size selection
adjust indentation to using spaces
wizard: use 10GiB from 50GiB free to 100GiB free
add a NEWS file
add a NEWS entry about the NEWS file
bookmarks: indexes for default bookmarks in software category were wrong.
default bookmarks: Fix: did not adjust the documentation category name.
update NEWS
improve our READMEs with build instructions
add a note how to run the built freenet yourself.
switch the default theme to sky static
Order node-to-node message alerts by sent time
l10n: Simplify N2NTM useralert header
useralerts.N2NTM: order by received time instead of sent time
useralerts: order messages in each class by updated time
n2ntms: the composed time is the time the user hit send
UserAlertManager: fix the comments and make them actually useful
NEWS: add sorted n2ntms
Gantros is likely dead. Let us preserve his or her memory.
Linkageddon stopped updating.
update NEWS file
oo (1):
CompatibilityAnalyser: fix dontCompress always being false
saces (1):
set addItem to public
xor-freenet (4):
Fix updating for official plugins whose JAR URI is USK
OfficialPlugins: Add testing versions of WOT published by xor
WOT testing versions' l10n: Warn user about permanent auto-update
Eclipe classpath: Fix sourcepath of contrib to match repository name
yadevel (1):
Avoid claiming of unrejected messages by NodeDispatcher