GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - hyphanet/fred: Freenet REference Daemon

BranchesTags
Open more actions menu

Latest commit

 

History

32,501 Commits
32,501 Commits

Folders and files

NameName
Last commit message
Last commit date
.github/workflows
.github/workflows
 
 
.tx
.tx
 
 
debian
debian
 
 
devnotes
devnotes
 
 
generator/js
generator/js
 
 
gradle
gradle
 
 
lib
lib
 
 
src/freenet
src/freenet
 
 
stats/probe_test
stats/probe_test
 
 
test/freenet
test/freenet
 
 
.gitignore
.gitignore
 
 
.gitmodules
.gitmodules
 
 
.travis.yml
.travis.yml
 
 
AUTHORS
AUTHORS
 
 
CONTRIBUTING.md
CONTRIBUTING.md
 
 
LICENSE
LICENSE
 
 
NEWS.md
NEWS.md
 
 
README.md
README.md
 
 
SECURITY.md
SECURITY.md
 
 
build-clean.xml
build-clean.xml
 
 
build-offline.sh
build-offline.sh
 
 
build.gradle
build.gradle
 
 
build.properties
build.properties
 
 
dependencies.properties
dependencies.properties
 
 
gradlew
gradlew
 
 
gradlew.bat
gradlew.bat
 
 
test-offline.sh
test-offline.sh
 
 

Repository files navigation

Build status Coverity status

Freenet

Freenet is a platform for censorship-resistant communication and publishing. It is peer-to-peer software which provides a distributed, encrypted, decentralized datastore. Websites and applications providing things like forums and chat are built on top of it.

Fred stands for Freenet REference Daemon.

Building

We've included the Gradle Wrapper as recommended by the Gradle project. If you trust the version we've committed you can build immediately:

POSIX / Windows PowerShell:

$ ./gradlew jar

Windows cmd:

> gradlew jar

We've configured it to verify the checksum of the archive it downloads from https://services.gradle.org.

Build with ant

$ mkdir -p lib; (cd lib && grep -o CHK.* ../dependencies.properties  | xargs -P16 -I {} bash -c 'fcpget -v {} "$(echo {} | sed s,^.*/,,)"')
$ ant -propertyfile build.properties -f build-clean.xml -Dtest.skip=true -Dfindbugs.skip=true

Building the installers

The installers are built from specialized repositories:

  • The GNU/Linux, macOS and *nix installer is built from hyphanet/java_installer.
  • The Windows installer is built from hyphanet/wininstaller-innosetup and signed with hyphanet/sign-windows-installer.

Free code signing for the Windows installer is provided by SignPath.io, the certificate by the SignPath Foundation.

Testing

Run Tests

To run all unit tests, use

./gradlew --parallel test

You can run specifics tests with a test filter similar to the following:

./gradlew --parallel test --tests *M3UFilterTest

TODO: how to run integration tests.

Run your changes as node

To test your version of Freenet, build it with ,./gradlew jar, stop your node, replace freenet.jarin your Freenet directory withbuild/libs/freenet.jar`, and start your node again.

To override values set in build.gradle put them into the file gradle.properties in the format variable = value. For instance:

org.gradle.parallel = true
org.gradle.daemon = true
org.gradle.jvmargs=-Xms256m -Xmx1024m
org.gradle.configureondemand=true

tasks.withType(Test)  {
  maxParallelForks = Runtime.runtime.availableProcessors()
}

Contributing

See our contributor guidelines.

Get in contact

  • Ask the development mailing list or join us in IRC - #freenet on irc.libera.chat.
  • You can file problems in the bug tracker.

Add a new dependency

All dependencies must be available via Freenet, so it must be added to dependencies.properties.

  • Add it to build.gradle dependencies and dependencyVerification. Run ./gradlew jar --debug to find files that fail the verification.
  • fcpupload {dependencyfile.jar}
  • add it to all installers: wininstaller-innosetup, java_installer, mactray. Search for jna-platform to find out where to put and register the dependency.
  • add dependency and the CHK to dependencies.properties.
  • update scripts/update.sh and res/wrapper.conf and res/unix/run.sh in java_installer to include the dependency.

With the example of pebble: The filename is just the jarfile. The key is what fcpupload returns. Size is wc -c filename.jar, sha256 is sha256sum filename.jar, order is where it should be put in wrapper.conf in wrapper.java.classpath.

pebble.version=3.1.5
pebble.filename=pebble-3.1.5.jar
pebble.filename-regex=pebble-*.jar
pebble.key=CHK@y~p8HMUVXmVgfSnrmUyu2UNXMO9uMDHS5nwo2YuOKvw,yzwLFP0GXa8RjwRpicQCPFKNggDXLkTQKH8nISe0qUY,AAMC--8/pebble-3.1.5.jar
pebble.size=318169
pebble.sha256=85e77f9fd64c0a1f85569db8f95c1fb8e6ef8b296f4d6206440dc6306140c1a1
pebble.type=CLASSPATH
pebble.order=4

Licensing

Freenet is under the GPL, version 2 or later - see LICENSE.Freenet. We use some code under the Apache license version 2 (mostly apache commons stuff), and some modified BSD code (Mantissa). All of which is compatible with the GPL, although arguably ASL2 is only compatible with GPL3. Some plugins are GPL3.

About

Freenet REference Daemon

www.hyphanet.org/

Topics

anonymityhyphanetprivacy

Resources

Readme
GPL-2.0 license

Contributing

Contributing

Security policy

Security policy
Activity
Custom properties

Stars

1.2k stars

Watchers

92 watching

Forks

236 forks
Report repository

Releases

Packages

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.