Split the Makefile up into a bunch of categorized sub-files.
This commit is contained in:
293
Makefile
293
Makefile
@@ -25,7 +25,7 @@ version.txt:
|
|||||||
i2pbrowser-jpackage.nsi:
|
i2pbrowser-jpackage.nsi:
|
||||||
echo "!define I2P_VERSION $(I2P_VERSION)" > src/nsis/i2pbrowser-jpackage.nsi
|
echo "!define I2P_VERSION $(I2P_VERSION)" > src/nsis/i2pbrowser-jpackage.nsi
|
||||||
|
|
||||||
jpackage: .version I2P all
|
jpackage: .version I2P build/I2P/config all
|
||||||
|
|
||||||
help: .version
|
help: .version
|
||||||
@echo "I2P-Profile-Installer-$(PROFILE_VERSION)"
|
@echo "I2P-Profile-Installer-$(PROFILE_VERSION)"
|
||||||
@@ -58,8 +58,6 @@ build/I2P: build
|
|||||||
cp -rv I2P build/I2P ; true
|
cp -rv I2P build/I2P ; true
|
||||||
cp "$(I2P_JBIGI)"/*windows*.dll build/I2P/runtime/lib; true
|
cp "$(I2P_JBIGI)"/*windows*.dll build/I2P/runtime/lib; true
|
||||||
|
|
||||||
configdir: src/I2P/config
|
|
||||||
|
|
||||||
src/I2P/config:
|
src/I2P/config:
|
||||||
mkdir -p src/I2P/config
|
mkdir -p src/I2P/config
|
||||||
rm -rf src/I2P/config/geoip src/I2P/config/webapps src/I2P/config/certificates
|
rm -rf src/I2P/config/geoip src/I2P/config/webapps src/I2P/config/certificates
|
||||||
@@ -79,7 +77,7 @@ src/I2P/config:
|
|||||||
|
|
||||||
build/I2P/config: build/I2P
|
build/I2P/config: build/I2P
|
||||||
make src/I2P/config; true
|
make src/I2P/config; true
|
||||||
cp -rv src/I2P/config build/I2P/config ; true
|
cp -rv src/I2P/config/* build/I2P/config ; true
|
||||||
cp -rv src/I2P/config build/I2P/.i2p ; true
|
cp -rv src/I2P/config build/I2P/.i2p ; true
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -101,295 +99,30 @@ build:
|
|||||||
@echo "creating build directory"
|
@echo "creating build directory"
|
||||||
mkdir -p build
|
mkdir -p build
|
||||||
|
|
||||||
profile: build/profile/user.js build/profile/prefs.js build/profile/bookmarks.html build/profile/storage-sync.sqlite copy-xpi
|
include makefiles/profile.mk
|
||||||
|
|
||||||
profile.tgz: .version profile
|
include makefiles/app-profile.mk
|
||||||
# $(eval PROFILE_VERSION := $(shell cat src/profile/version.txt))
|
|
||||||
@echo "building profile tarball $(PROFILE_VERSION)"
|
|
||||||
sh -c 'ls I2P && cp -rv build/I2P build/profile/I2P'; true
|
|
||||||
install -m755 src/unix/i2pbrowser.sh build/profile/i2pbrowser.sh
|
|
||||||
cd build && tar -czf profile-$(PROFILE_VERSION).tgz profile && cp profile-$(PROFILE_VERSION).tgz ../
|
|
||||||
|
|
||||||
build/profile/user.js: build/profile src/profile/user.js
|
-include makefiles/new-extensions.mk
|
||||||
cp src/profile/user.js build/profile/user.js
|
|
||||||
|
|
||||||
build/profile/prefs.js: build/profile src/profile/prefs.js
|
include makefiles/extensions.mk
|
||||||
cp src/profile/prefs.js build/profile/prefs.js
|
|
||||||
|
|
||||||
build/profile/bookmarks.html: build/profile src/profile/bookmarks.html
|
include makefiles/build.mk
|
||||||
cp src/profile/bookmarks.html build/profile/bookmarks.html
|
|
||||||
|
|
||||||
build/profile/storage-sync.sqlite: build/profile src/profile/storage-sync.sqlite
|
include makefiles/install.mk
|
||||||
cp src/profile/storage-sync.sqlite build/profile/storage-sync.sqlite
|
|
||||||
|
|
||||||
copy-xpi: build/NoScript.xpi build/HTTPSEverywhere.xpi build/i2ppb@eyedeekay.github.io.xpi build/profile/extensions
|
include makefiles/su.mk
|
||||||
cp build/NoScript.xpi "build/profile/extensions/{73a6fe31-595d-460b-a920-fcc0f8843232}.xpi"
|
|
||||||
cp build/HTTPSEverywhere.xpi "build/profile/extensions/https-everywhere-eff@eff.org.xpi"
|
|
||||||
cp build/i2ppb@eyedeekay.github.io.xpi build/profile/extensions/i2ppb@eyedeekay.github.io.xpi
|
|
||||||
|
|
||||||
app-profile: .version build/app-profile/user.js build/app-profile/prefs.js build/app-profile/chrome/userChrome.css build/app-profile/bookmarks.html build/app-profile/storage-sync.sqlite copy-app-xpi
|
include makefiles/su-unsigned.mk
|
||||||
|
|
||||||
app-profile.tgz: app-profile
|
include makefiles/docker.mk
|
||||||
# $(eval PROFILE_VERSION := $(shell cat src/app-profile/version.txt))
|
|
||||||
@echo "building app-profile tarball $(PROFILE_VERSION)"
|
|
||||||
sh -c 'ls I2P && cp -rv build/I2P build/app-profile/I2P'; true
|
|
||||||
install -m755 src/unix/i2pconfig.sh build/app-profile/i2pconfig.sh
|
|
||||||
cd build && tar -czf app-profile-$(PROFILE_VERSION).tgz app-profile && cp app-profile-$(PROFILE_VERSION).tgz ../
|
|
||||||
|
|
||||||
build/app-profile/user.js: build/app-profile src/app-profile/user.js
|
include makefiles/debian.mk
|
||||||
cp src/app-profile/user.js build/app-profile/user.js
|
|
||||||
|
|
||||||
build/app-profile/prefs.js: build/app-profile src/app-profile/prefs.js
|
|
||||||
cp src/app-profile/prefs.js build/app-profile/prefs.js
|
|
||||||
|
|
||||||
build/app-profile/chrome/userChrome.css: build/app-profile/chrome src/app-profile/chrome/userChrome.css
|
|
||||||
cp src/app-profile/chrome/userChrome.css build/app-profile/chrome/userChrome.css
|
|
||||||
|
|
||||||
build/app-profile/bookmarks.html: build/app-profile src/app-profile/bookmarks.html
|
|
||||||
cp src/app-profile/bookmarks.html build/app-profile/bookmarks.html
|
|
||||||
|
|
||||||
build/app-profile/storage-sync.sqlite: build/app-profile src/app-profile/storage-sync.sqlite
|
|
||||||
cp src/app-profile/storage-sync.sqlite build/app-profile/storage-sync.sqlite
|
|
||||||
|
|
||||||
copy-app-xpi: build/NoScript.xpi build/HTTPSEverywhere.xpi build/i2ppb@eyedeekay.github.io.xpi build/app-profile/extensions
|
|
||||||
cp build/HTTPSEverywhere.xpi "build/app-profile/extensions/https-everywhere-eff@eff.org.xpi"
|
|
||||||
cp build/i2ppb@eyedeekay.github.io.xpi build/app-profile/extensions/i2ppb@eyedeekay.github.io.xpi
|
|
||||||
|
|
||||||
build-extensions: build/i2ppb@eyedeekay.github.io.xpi build/NoScript.xpi build/HTTPSEverywhere.xpi
|
|
||||||
|
|
||||||
build/i2ppb@eyedeekay.github.io.xpi: i2psetproxy.url
|
|
||||||
curl -L `cat i2psetproxy.url` > build/i2ppb@eyedeekay.github.io.xpi
|
|
||||||
|
|
||||||
build/NoScript.xpi: NoScript.url
|
|
||||||
curl -L `cat NoScript.url` > build/NoScript.xpi
|
|
||||||
|
|
||||||
build/HTTPSEverywhere.xpi: HTTPSEverywhere.url
|
|
||||||
curl -L `cat HTTPSEverywhere.url` > build/HTTPSEverywhere.xpi
|
|
||||||
|
|
||||||
clean-extensions:
|
|
||||||
rm -fv i2psetproxy.url NoScript.url HTTPSEverywhere.url
|
|
||||||
|
|
||||||
extensions:HTTPSEverywhere.url NoScript.url i2psetproxy.url
|
|
||||||
|
|
||||||
-include new-extensions.mk
|
|
||||||
|
|
||||||
HTTPSEverywhere.url:
|
|
||||||
@echo "https://addons.mozilla.org/firefox/downloads/file/3809748/"`./amo-version.sh https-everywhere`"/https-everywhere-eff@eff.org.xpi" > HTTPSEverywhere.url
|
|
||||||
|
|
||||||
NoScript.url:
|
|
||||||
@echo "https://addons.mozilla.org/firefox/downloads/file/3534184/"`./amo-version.sh noscript`"/{73a6fe31-595d-460b-a920-fcc0f8843232}.xpi" > NoScript.url
|
|
||||||
|
|
||||||
i2psetproxy.url:
|
|
||||||
@echo "https://addons.mozilla.org/firefox/downloads/file/3887295/"`./amo-version.sh i2p-in-private-browsing`"/i2ppb@eyedeekay.github.io.xpi" > i2psetproxy.url
|
|
||||||
|
|
||||||
# TODO: switch to the "Rhizome" variant which has extended permission to do things like set the homepage.
|
|
||||||
# @echo "https://addons.mozilla.org/firefox/downloads/file/3799074/"`./amo-version.sh i2pipb-rhizome-variant`"/i2prhz@eyedeekay.github.io.xpi" > i2psetproxy.url
|
|
||||||
|
|
||||||
#https://addons.mozilla.org/firefox/downloads/file/3821635/i2p_in_private_browsing-0.112.1-an+fx.xpi
|
|
||||||
#i2ppb@eyedeekay.github.io.xpi
|
|
||||||
|
|
||||||
build/profile/extensions: build/profile
|
|
||||||
mkdir -p build/profile/extensions
|
|
||||||
|
|
||||||
build/profile: build
|
|
||||||
mkdir -p build/profile
|
|
||||||
|
|
||||||
build/win:
|
|
||||||
mkdir -p build/win/
|
|
||||||
|
|
||||||
build/win/i2pbrowser.bat:
|
|
||||||
cp src/win/i2pbrowser.bat build/win/i2pbrowser.bat
|
|
||||||
|
|
||||||
build/win/i2pconfig.bat:
|
|
||||||
cp src/win/i2pconfig.bat build/win/i2pconfig.bat
|
|
||||||
|
|
||||||
build/win/i2pbrowser-private.bat:
|
|
||||||
cp src/win/i2pbrowser-private.bat build/win/i2pbrowser-private.bat
|
|
||||||
|
|
||||||
launchers: build/win build/win/i2pbrowser.bat build/win/i2pbrowser-private.bat build/win/i2pconfig.bat
|
|
||||||
|
|
||||||
build/app-profile/chrome: build/app-profile
|
|
||||||
mkdir -p build/app-profile/chrome
|
|
||||||
|
|
||||||
build/app-profile/extensions: build/app-profile
|
|
||||||
mkdir -p build/app-profile/extensions
|
|
||||||
|
|
||||||
build/app-profile: build
|
|
||||||
mkdir -p build/app-profile
|
|
||||||
|
|
||||||
install:
|
|
||||||
install -D -m644 src/unix/i2pbrowserrc /etc/i2pbrowser/i2pbrowserrc
|
|
||||||
install -D -m644 src/unix/i2pbrowserdebianrc /etc/i2pbrowser/i2pbrowserdebianrc
|
|
||||||
install -D -m755 build/profile/i2pbrowser.sh /usr/local/bin/i2pbrowser
|
|
||||||
install -D -m755 build/app-profile/i2pconfig.sh /usr/local/bin/i2pconfig
|
|
||||||
install -D -m755 src/unix/i2p-config-service-setup.sh /usr/local/bin/i2p-config-service-setup
|
|
||||||
cp -vr build/profile /var/lib/i2pbrowser/profile
|
|
||||||
cp -vr build/app-profile /var/lib/i2pbrowser/app-profile
|
|
||||||
cp -vr src/icons /var/lib/i2pbrowser/icons
|
|
||||||
cp src/unix/desktop/i2pbrowser.desktop /usr/share/applications
|
|
||||||
cp src/unix/desktop/i2pconfig.desktop /usr/share/applications
|
|
||||||
|
|
||||||
uninstall:
|
|
||||||
rm -rfv /etc/i2pbrowser \
|
|
||||||
/var/lib/i2pbrowser \
|
|
||||||
/etc/i2pbrowser/i2pbrowserrc \
|
|
||||||
/usr/local/bin/i2pbrowser \
|
|
||||||
/usr/local/bin/i2pconfig \
|
|
||||||
/usr/local/bin/i2p-config-service-setup \
|
|
||||||
/usr/share/applications/i2pbrowser.desktop \
|
|
||||||
/usr/share/applications/i2pconfig.desktop
|
|
||||||
|
|
||||||
checkinstall: .version
|
|
||||||
checkinstall \
|
|
||||||
--default \
|
|
||||||
--install=no \
|
|
||||||
--fstrans=yes \
|
|
||||||
--pkgname=i2p-firefox \
|
|
||||||
--pkgversion=$(PROFILE_VERSION) \
|
|
||||||
--pkggroup=net \
|
|
||||||
--pkgrelease=1 \
|
|
||||||
--pkgsource="https://i2pgit.org/i2p-hackers/i2p.firefox" \
|
|
||||||
--maintainer="$(SIGNER)" \
|
|
||||||
--requires="firefox,wget" \
|
|
||||||
--suggests="i2p,i2p-router,syndie,tor,tsocks" \
|
|
||||||
--nodoc \
|
|
||||||
--deldoc=yes \
|
|
||||||
--deldesc=yes \
|
|
||||||
--backup=no
|
|
||||||
|
|
||||||
GOPATH=$(HOME)/go
|
|
||||||
|
|
||||||
$(GOPATH)/src/i2pgit.org/idk/su3-tools/su3-tools:
|
|
||||||
git clone https://i2pgit.org/idk/su3-tools $(GOPATH)/src/i2pgit.org/idk/su3-tools; true
|
|
||||||
git pull --all
|
|
||||||
cd $(GOPATH)/src/i2pgit.org/idk/su3-tools && \
|
|
||||||
go mod vendor && go build
|
|
||||||
|
|
||||||
su3: $(GOPATH)/src/i2pgit.org/idk/su3-tools/su3-tools
|
|
||||||
$(GOPATH)/src/i2pgit.org/idk/su3-tools/su3-tools -name "I2P-Profile-Installer-$(PROFILE_VERSION)-signed" -signer "$(SIGNER)" -version "$(I2P_VERSION)"
|
|
||||||
java -cp "$(HOME)/i2p/lib/*" net.i2p.crypto.SU3File sign -c ROUTER -f EXE I2P-Profile-Installer-$(PROFILE_VERSION)-signed.exe I2P-Profile-Installer-$(PROFILE_VERSION)-signed.su3 "$(HOME)/.i2p-plugin-keys/news-su3-keystore.ks" "$(I2P_VERSION)" $(SIGNER)
|
|
||||||
|
|
||||||
su3-unsigned-exe:
|
|
||||||
$(GOPATH)/src/i2pgit.org/idk/su3-tools/su3-tools -name "I2P-Profile-Installer-$(PROFILE_VERSION)" -signer "$(SIGNER)" -version "$(I2P_VERSION)"
|
|
||||||
java -cp "$(HOME)/i2p/lib/*" net.i2p.crypto.SU3File sign -c ROUTER -f EXE I2P-Profile-Installer-$(PROFILE_VERSION).exe I2P-Profile-Installer-$(PROFILE_VERSION)-signed.su3 "$(HOME)/.i2p-plugin-keys/news-su3-keystore.ks" "$(I2P_VERSION)" $(SIGNER)
|
|
||||||
|
|
||||||
docker:
|
|
||||||
docker build -t geti2p/i2p.firefox .
|
|
||||||
|
|
||||||
xhost:
|
|
||||||
xhost + local:docker
|
|
||||||
|
|
||||||
run: docker xhost
|
|
||||||
docker run -it --rm \
|
|
||||||
--net=host \
|
|
||||||
-e DISPLAY=unix$(DISPLAY) \
|
|
||||||
-v /tmp/.X11-unix:/tmp/.X11-unix \
|
|
||||||
geti2p/i2p.firefox firefox --profile /src/build/profile
|
|
||||||
|
|
||||||
orig:
|
|
||||||
tar --exclude=debian --exclude=.git -cvzf ../i2p-firefox-profile_$(PROFILE_VERSION).orig.tar.gz .
|
|
||||||
|
|
||||||
## HOWTO: If you need to release a package to launchpad, build for the oldest
|
|
||||||
## release launchpad supports(bionic AFIACT). Then, after the build is
|
|
||||||
## published, copy it to the other distributions. When bionic is out of date,
|
|
||||||
## update it to the new LTS.
|
|
||||||
|
|
||||||
bionic:
|
|
||||||
@sed -i "s|`head -n 1 debian/changelog`|i2p-firefox-profile ($(PROFILE_VERSION)-1) bionic; urgency=medium|g" debian/changelog
|
|
||||||
make orig
|
|
||||||
debuild -S
|
|
||||||
make dput
|
|
||||||
|
|
||||||
focal:
|
|
||||||
@sed -i "s|`head -n 1 debian/changelog`|i2p-firefox-profile ($(PROFILE_VERSION)-1) focal; urgency=medium|g" debian/changelog
|
|
||||||
make orig
|
|
||||||
debuild -S
|
|
||||||
make dput
|
|
||||||
|
|
||||||
groovy:
|
|
||||||
@sed -i "s|`head -n 1 debian/changelog`|i2p-firefox-profile ($(PROFILE_VERSION)-1) groovy; urgency=medium|g" debian/changelog
|
|
||||||
make orig
|
|
||||||
debuild -S
|
|
||||||
make dput
|
|
||||||
|
|
||||||
buster:
|
|
||||||
@sed -i "s|`head -n 1 debian/changelog`|i2p-firefox-profile ($(PROFILE_VERSION)-1) buster; urgency=medium|g" debian/changelog
|
|
||||||
make orig
|
|
||||||
debuild -S
|
|
||||||
make dput
|
|
||||||
|
|
||||||
bullseye:
|
|
||||||
@sed -i "s|`head -n 1 debian/changelog`|i2p-firefox-profile ($(PROFILE_VERSION)-1) bullseye; urgency=medium|g" debian/changelog
|
|
||||||
make orig
|
|
||||||
debuild -S
|
|
||||||
make dput
|
|
||||||
|
|
||||||
trixie:
|
|
||||||
@sed -i "s|`head -n 1 debian/changelog`|i2p-firefox-profile ($(PROFILE_VERSION)-1) trixie; urgency=medium|g" debian/changelog
|
|
||||||
make orig
|
|
||||||
debuild -S
|
|
||||||
make dput
|
|
||||||
|
|
||||||
sid:
|
|
||||||
@sed -i "s|`head -n 1 debian/changelog`|i2p-firefox-profile ($(PROFILE_VERSION)-1) sid; urgency=medium|g" debian/changelog
|
|
||||||
make orig
|
|
||||||
debuild -S
|
|
||||||
make dput
|
|
||||||
|
|
||||||
dput:
|
|
||||||
dput --simulate --force ppa:i2p-community/ppa ../i2p-firefox-profile_$(PROFILE_VERSION)-1_source.changes || exit
|
|
||||||
dput --force ppa:i2p-community/ppa ../i2p-firefox-profile_$(PROFILE_VERSION)-1_source.changes
|
|
||||||
|
|
||||||
launchpad: bionic
|
|
||||||
|
|
||||||
I2P_DATE=`date +%Y-%m-%d`
|
I2P_DATE=`date +%Y-%m-%d`
|
||||||
|
|
||||||
prepupdate:
|
|
||||||
cp -v "I2P-Profile-Installer-$(PROFILE_VERSION)-signed.su3" i2pwinupdate.su3 || cp -v "I2P-Profile-Installer-$(PROFILE_VERSION).su3" i2pwinupdate.su3
|
|
||||||
|
|
||||||
i2pwinupdate.su3.torrent: prepupdate
|
|
||||||
mktorrent --announce=http://tracker2.postman.i2p/announce.php --announce=http://w7tpbzncbcocrqtwwm3nezhnnsw4ozadvi2hmvzdhrqzfxfum7wa.b32.i2p/a --announce=http://mb5ir7klpc2tj6ha3xhmrs3mseqvanauciuoiamx2mmzujvg67uq.b32.i2p/a i2pwinupdate.su3
|
|
||||||
|
|
||||||
torrent: i2pwinupdate.su3.torrent
|
|
||||||
|
|
||||||
MAGNET=`bttools torrent printinfo i2pwinupdate.su3.torrent | grep 'MagNet' | sed 's|MagNet: ||g' | sed 's|%3A|:|g'| sed 's|%2F|/|g'`
|
MAGNET=`bttools torrent printinfo i2pwinupdate.su3.torrent | grep 'MagNet' | sed 's|MagNet: ||g' | sed 's|%3A|:|g'| sed 's|%2F|/|g'`
|
||||||
|
MAGNET_TESTING=`bttools torrent printinfo i2pwinupdate-testing.su3.torrent | grep 'MagNet' | sed 's|MagNet: ||g' | sed 's|%3A|:|g'| sed 's|%2F|/|g'`
|
||||||
releases.json: torrent
|
|
||||||
@echo "[" | tee ../i2p.newsxml/data/win/beta/releases.json
|
|
||||||
@echo " {" | tee -a ../i2p.newsxml/data/win/beta/releases.json
|
|
||||||
@echo " \"date\": \"$(I2P_DATE)\"," | tee -a ../i2p.newsxml/data/win/beta/releases.json
|
|
||||||
@echo " \"version\": \"$(I2P_VERSION)\"," | tee -a ../i2p.newsxml/data/win/beta/releases.json
|
|
||||||
@echo " \"minVersion\": \"1.5.0\"," | tee -a ../i2p.newsxml/data/win/beta/releases.json
|
|
||||||
@echo " \"minJavaVersion\": \"1.8\"," | tee -a ../i2p.newsxml/data/win/beta/releases.json
|
|
||||||
@echo " \"updates\": {" | tee -a ../i2p.newsxml/data/win/beta/releases.json
|
|
||||||
@echo " \"su3\": {" | tee -a ../i2p.newsxml/data/win/beta/releases.json
|
|
||||||
@echo " \"torrent\": \"$(MAGNET)\"," | tee -a ../i2p.newsxml/data/win/beta/releases.json
|
|
||||||
@echo " \"url\": [" | tee -a ../i2p.newsxml/data/win/beta/releases.json
|
|
||||||
@echo " \"http://ekm3fu6fr5pxudhwjmdiea5dovc3jdi66hjgop4c7z7dfaw7spca.b32.i2p/i2pwinupdate.su3\"" | tee -a ../i2p.newsxml/data/win/beta/releases.json
|
|
||||||
@echo " ]" | tee -a ../i2p.newsxml/data/win/beta/releases.json
|
|
||||||
@echo " }" | tee -a ../i2p.newsxml/data/win/beta/releases.json
|
|
||||||
@echo " }" | tee -a ../i2p.newsxml/data/win/beta/releases.json
|
|
||||||
@echo " }" | tee -a ../i2p.newsxml/data/win/beta/releases.json
|
|
||||||
@echo "]" | tee -a ../i2p.newsxml/data/win/beta/releases.json
|
|
||||||
|
|
||||||
testing-releases.json: su3-unsigned-exe torrent
|
|
||||||
mkdir -p ../i2p.newsxml/data/win/testing/
|
|
||||||
@echo "[" | tee ../i2p.newsxml/data/win/testing/releases.json
|
|
||||||
@echo " {" | tee -a ../i2p.newsxml/data/win/testing/releases.json
|
|
||||||
@echo " \"date\": \"$(I2P_DATE)\"," | tee -a ../i2p.newsxml/data/win/testing/releases.json
|
|
||||||
@echo " \"version\": \"$(I2P_VERSION)\"," | tee -a ../i2p.newsxml/data/win/testing/releases.json
|
|
||||||
@echo " \"minVersion\": \"1.5.0\"," | tee -a ../i2p.newsxml/data/win/testing/releases.json
|
|
||||||
@echo " \"minJavaVersion\": \"1.8\"," | tee -a ../i2p.newsxml/data/win/testing/releases.json
|
|
||||||
@echo " \"updates\": {" | tee -a ../i2p.newsxml/data/win/testing/releases.json
|
|
||||||
@echo " \"su3\": {" | tee -a ../i2p.newsxml/data/win/testing/releases.json
|
|
||||||
@echo " \"torrent\": \"$(MAGNET)\"," | tee -a ../i2p.newsxml/data/win/testing/releases.json
|
|
||||||
@echo " \"url\": [" | tee -a ../i2p.newsxml/data/win/testing/releases.json
|
|
||||||
@echo " \"http://ekm3fu6fr5pxudhwjmdiea5dovc3jdi66hjgop4c7z7dfaw7spca.b32.i2p/i2pwinupdate.su3\"" | tee -a ../i2p.newsxml/data/win/testing/releases.json
|
|
||||||
@echo " ]" | tee -a ../i2p.newsxml/data/win/testing/releases.json
|
|
||||||
@echo " }" | tee -a ../i2p.newsxml/data/win/testing/releases.json
|
|
||||||
@echo " }" | tee -a ../i2p.newsxml/data/win/testing/releases.json
|
|
||||||
@echo " }" | tee -a ../i2p.newsxml/data/win/testing/releases.json
|
|
||||||
@echo "]" | tee -a ../i2p.newsxml/data/win/testing/releases.json
|
|
||||||
|
|
||||||
BLANK=`awk '! NF { print NR; exit }' changelog.txt`
|
BLANK=`awk '! NF { print NR; exit }' changelog.txt`
|
||||||
|
|
||||||
|
23
build.sh
23
build.sh
@@ -7,6 +7,8 @@ if [ -f i2pversion_override ]; then
|
|||||||
. i2pversion_override
|
. i2pversion_override
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
COUNT="Ten Nine Eight Seven Six Five Four Three Two One"
|
||||||
|
|
||||||
JAVA=$(java --version | tr -d 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\n' | cut -d ' ' -f 2 | cut -d '.' -f 1 | tr -d '\n\t\- ')
|
JAVA=$(java --version | tr -d 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\n' | cut -d ' ' -f 2 | cut -d '.' -f 1 | tr -d '\n\t\- ')
|
||||||
|
|
||||||
if [ "$JAVA" -lt "14" ]; then
|
if [ "$JAVA" -lt "14" ]; then
|
||||||
@@ -15,9 +17,8 @@ if [ "$JAVA" -lt "14" ]; then
|
|||||||
fi
|
fi
|
||||||
if [ "$JAVA" -lt "17" ]; then
|
if [ "$JAVA" -lt "17" ]; then
|
||||||
echo "It is highly recommended that you use Java 17+ to build release packages"
|
echo "It is highly recommended that you use Java 17+ to build release packages"
|
||||||
sleep 5s
|
|
||||||
fi
|
fi
|
||||||
sleep 2s
|
sleep 5s
|
||||||
|
|
||||||
if [ -z "${JAVA_HOME}" ]; then
|
if [ -z "${JAVA_HOME}" ]; then
|
||||||
JAVA_HOME=`type -p java|xargs readlink -f|xargs dirname|xargs dirname`
|
JAVA_HOME=`type -p java|xargs readlink -f|xargs dirname|xargs dirname`
|
||||||
@@ -28,16 +29,22 @@ echo "cleaning"
|
|||||||
./clean.sh
|
./clean.sh
|
||||||
|
|
||||||
HERE="$PWD"
|
HERE="$PWD"
|
||||||
cd "$HERE/../i2p.i2p/"
|
if [ ! -d "$HERE/../i2p.i2p.jpackage-build/" ]; then
|
||||||
|
git clone https://i2pgit.org/i2p-hackers/i2p.i2p "$HERE/../i2p.i2p.jpackage-build/"
|
||||||
|
fi
|
||||||
|
cd "$HERE/../i2p.i2p.jpackage-build/"
|
||||||
git checkout "$VERSION"
|
git checkout "$VERSION"
|
||||||
sleep 20s
|
for i in $COUNT; do
|
||||||
|
echo -n "$i...."; sleep 1s
|
||||||
|
done
|
||||||
ant distclean preppkg-windows || true
|
ant distclean preppkg-windows || true
|
||||||
|
|
||||||
cd "$HERE"
|
cd "$HERE"
|
||||||
RES_DIR="$HERE/../i2p.i2p/installer/resources"
|
I2P_PKG="$HERE/../i2p.i2p.jpackage-build/pkg-temp"
|
||||||
I2P_JARS="$HERE/../i2p.i2p/pkg-temp/lib"
|
RES_DIR="$HERE/../i2p.i2p.jpackage-build/installer/resources"
|
||||||
I2P_JBIGI="$HERE/../i2p.i2p/installer/lib//jbigi"
|
I2P_JARS="$I2P_PKG/lib"
|
||||||
I2P_PKG="$HERE/../i2p.i2p/pkg-temp"
|
I2P_JBIGI="$HERE/../i2p.i2p.jpackage-build/installer/lib/jbigi"
|
||||||
|
|
||||||
|
|
||||||
echo "compiling custom launcher"
|
echo "compiling custom launcher"
|
||||||
mkdir build
|
mkdir build
|
||||||
|
@@ -18,14 +18,16 @@ import static net.i2p.update.UpdateType.*;
|
|||||||
/**
|
/**
|
||||||
* Launches a router from %PROGRAMFILES%/I2P using configuration data in
|
* Launches a router from %PROGRAMFILES%/I2P using configuration data in
|
||||||
* %LOCALAPPDATA%/I2P.. Uses Java 9 APIs.
|
* %LOCALAPPDATA%/I2P.. Uses Java 9 APIs.
|
||||||
|
*
|
||||||
* Sets the following properties:
|
* Sets the following properties:
|
||||||
* i2p.dir.base - this points to the (read-only) resources inside the bundle
|
* i2p.dir.base - this points to the (read-only) resources inside the bundle
|
||||||
* i2p.dir.config this points to the (read-write) config directory in local appdata
|
* i2p.dir.config this points to the (read-write) config directory in local
|
||||||
|
* appdata
|
||||||
* router.pid - the pid of the java process.
|
* router.pid - the pid of the java process.
|
||||||
*/
|
*/
|
||||||
public class WinLauncher {
|
public class WinLauncher {
|
||||||
private static WindowsUpdatePostProcessor wupp = new WindowsUpdatePostProcessor();
|
private static WindowsUpdatePostProcessor wupp = new WindowsUpdatePostProcessor();
|
||||||
|
|
||||||
public static void main(String[] args) throws Exception {
|
public static void main(String[] args) throws Exception {
|
||||||
File programs = wupp.selectProgramFile();
|
File programs = wupp.selectProgramFile();
|
||||||
if (!programs.exists())
|
if (!programs.exists())
|
||||||
@@ -46,7 +48,8 @@ public class WinLauncher {
|
|||||||
System.setProperty("i2p.dir.base", programs.getAbsolutePath());
|
System.setProperty("i2p.dir.base", programs.getAbsolutePath());
|
||||||
System.setProperty("i2p.dir.config", home.getAbsolutePath());
|
System.setProperty("i2p.dir.config", home.getAbsolutePath());
|
||||||
System.setProperty("router.pid", String.valueOf(ProcessHandle.current().pid()));
|
System.setProperty("router.pid", String.valueOf(ProcessHandle.current().pid()));
|
||||||
System.out.println("\t"+System.getProperty("i2p.dir.base") +"\n\t"+System.getProperty("i2p.dir.config")+"\n\t"+ System.getProperty("router.pid"));
|
System.out.println("\t" + System.getProperty("i2p.dir.base") + "\n\t" + System.getProperty("i2p.dir.config")
|
||||||
|
+ "\n\t" + System.getProperty("router.pid"));
|
||||||
|
|
||||||
wupp.i2pRouter = new Router(System.getProperties());
|
wupp.i2pRouter = new Router(System.getProperties());
|
||||||
System.out.println("Router is configured");
|
System.out.println("Router is configured");
|
||||||
@@ -63,7 +66,7 @@ public class WinLauncher {
|
|||||||
|
|
||||||
// first wait for the RouterContext to appear
|
// first wait for the RouterContext to appear
|
||||||
RouterContext ctx;
|
RouterContext ctx;
|
||||||
while ((ctx = (RouterContext) wupp.i2pRouter.getContext().getCurrentContext()) == null) {
|
while ((ctx = (RouterContext) RouterContext.getCurrentContext()) == null) {
|
||||||
sleep(1000);
|
sleep(1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -88,7 +91,7 @@ public class WinLauncher {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static File selectHome() { //throws Exception {
|
private static File selectHome() { // throws Exception {
|
||||||
if (SystemVersion.isWindows()) {
|
if (SystemVersion.isWindows()) {
|
||||||
File home = new File(System.getProperty("user.home"));
|
File home = new File(System.getProperty("user.home"));
|
||||||
File appData = new File(home, "AppData");
|
File appData = new File(home, "AppData");
|
||||||
|
@@ -18,7 +18,7 @@ class WinUpdateProcess implements Runnable {
|
|||||||
this.fileSupplier = fileSupplier;
|
this.fileSupplier = fileSupplier;
|
||||||
}
|
}
|
||||||
|
|
||||||
private File workDir() throws IOException{
|
private File workDir() throws IOException {
|
||||||
if (ctx != null) {
|
if (ctx != null) {
|
||||||
File workDir = new File(ctx.getConfigDir().getAbsolutePath(), "i2p_update_win");
|
File workDir = new File(ctx.getConfigDir().getAbsolutePath(), "i2p_update_win");
|
||||||
if (workDir.exists()) {
|
if (workDir.exists()) {
|
||||||
@@ -52,10 +52,7 @@ class WinUpdateProcess implements Runnable {
|
|||||||
env.put("RESTART_I2P", "true");
|
env.put("RESTART_I2P", "true");
|
||||||
|
|
||||||
try {
|
try {
|
||||||
pb.directory(workingDir).
|
pb.directory(workingDir).redirectErrorStream(true).redirectOutput(logFile).start();
|
||||||
redirectErrorStream(true).
|
|
||||||
redirectOutput(logFile).
|
|
||||||
start();
|
|
||||||
} catch (IOException ex) {
|
} catch (IOException ex) {
|
||||||
System.out.println("Unable to run update-program in background. Update will fail.");
|
System.out.println("Unable to run update-program in background. Update will fail.");
|
||||||
}
|
}
|
||||||
@@ -65,7 +62,7 @@ class WinUpdateProcess implements Runnable {
|
|||||||
public void run() {
|
public void run() {
|
||||||
try {
|
try {
|
||||||
runUpdateInstaller();
|
runUpdateInstaller();
|
||||||
} catch(IOException ioe) {
|
} catch (IOException ioe) {
|
||||||
System.out.println("Error running updater, update may fail." + ioe);
|
System.out.println("Error running updater, update may fail." + ioe);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -5,7 +5,6 @@ import java.util.*;
|
|||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
import java.util.concurrent.atomic.*;
|
import java.util.concurrent.atomic.*;
|
||||||
|
|
||||||
|
|
||||||
import net.i2p.crypto.*;
|
import net.i2p.crypto.*;
|
||||||
import static net.i2p.update.UpdateType.*;
|
import static net.i2p.update.UpdateType.*;
|
||||||
import net.i2p.I2PAppContext;
|
import net.i2p.I2PAppContext;
|
||||||
@@ -18,7 +17,6 @@ import java.lang.ProcessBuilder;
|
|||||||
import java.lang.Process;
|
import java.lang.Process;
|
||||||
import java.lang.InterruptedException;
|
import java.lang.InterruptedException;
|
||||||
|
|
||||||
|
|
||||||
public class WindowsUpdatePostProcessor implements UpdatePostProcessor {
|
public class WindowsUpdatePostProcessor implements UpdatePostProcessor {
|
||||||
private final Log _log = I2PAppContext.getGlobalContext().logManager().getLog(WindowsUpdatePostProcessor.class);
|
private final Log _log = I2PAppContext.getGlobalContext().logManager().getLog(WindowsUpdatePostProcessor.class);
|
||||||
private final RouterContext ctx;
|
private final RouterContext ctx;
|
||||||
@@ -47,7 +45,8 @@ public class WindowsUpdatePostProcessor implements UpdatePostProcessor {
|
|||||||
return positionedFile;
|
return positionedFile;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void updateDownloadedandVerified(UpdateType type, int fileType, String version, File file) throws IOException {
|
public void updateDownloadedandVerified(UpdateType type, int fileType, String version, File file)
|
||||||
|
throws IOException {
|
||||||
_log.info("Got an update to post-process");
|
_log.info("Got an update to post-process");
|
||||||
|
|
||||||
if (type != UpdateType.ROUTER_SIGNED_SU3 && type != UpdateType.ROUTER_DEV_SU3) {
|
if (type != UpdateType.ROUTER_SIGNED_SU3 && type != UpdateType.ROUTER_DEV_SU3) {
|
||||||
@@ -63,7 +62,7 @@ public class WindowsUpdatePostProcessor implements UpdatePostProcessor {
|
|||||||
this.positionedFile = moveUpdateInstaller(file);
|
this.positionedFile = moveUpdateInstaller(file);
|
||||||
this.version = version;
|
this.version = version;
|
||||||
|
|
||||||
if (!hook.compareAndSet(false,true)) {
|
if (!hook.compareAndSet(false, true)) {
|
||||||
_log.info("shutdown hook was already set");
|
_log.info("shutdown hook was already set");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -81,12 +80,14 @@ public class WindowsUpdatePostProcessor implements UpdatePostProcessor {
|
|||||||
if (renamedStatus)
|
if (renamedStatus)
|
||||||
return newFile;
|
return newFile;
|
||||||
else
|
else
|
||||||
throw new IOException("WindowsUpdatePostProcesssor unable to move file to working directory, update will fail");
|
throw new IOException(
|
||||||
|
"WindowsUpdatePostProcesssor unable to move file to working directory, update will fail");
|
||||||
}
|
}
|
||||||
throw new IOException("Router context not available to WindowsUpdatePostProcesssor, unable to find working directory, update will fail");
|
throw new IOException(
|
||||||
|
"Router context not available to WindowsUpdatePostProcesssor, unable to find working directory, update will fail");
|
||||||
}
|
}
|
||||||
|
|
||||||
private File workDir() throws IOException{
|
private File workDir() throws IOException {
|
||||||
RouterContext i2pContext = i2pRouter.getContext();
|
RouterContext i2pContext = i2pRouter.getContext();
|
||||||
if (i2pContext != null) {
|
if (i2pContext != null) {
|
||||||
File workDir = new File(i2pContext.getConfigDir().getAbsolutePath(), "i2p_update_win");
|
File workDir = new File(i2pContext.getConfigDir().getAbsolutePath(), "i2p_update_win");
|
||||||
|
28
makefiles/app-profile.mk
Normal file
28
makefiles/app-profile.mk
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
app-profile: .version build/app-profile/user.js build/app-profile/prefs.js build/app-profile/chrome/userChrome.css build/app-profile/bookmarks.html build/app-profile/storage-sync.sqlite copy-app-xpi
|
||||||
|
|
||||||
|
app-profile.tgz: app-profile
|
||||||
|
# $(eval PROFILE_VERSION := $(shell cat src/app-profile/version.txt))
|
||||||
|
@echo "building app-profile tarball $(PROFILE_VERSION)"
|
||||||
|
sh -c 'ls I2P && cp -rv build/I2P build/app-profile/I2P'; true
|
||||||
|
install -m755 src/unix/i2pconfig.sh build/app-profile/i2pconfig.sh
|
||||||
|
cd build && tar -czf app-profile-$(PROFILE_VERSION).tgz app-profile && cp app-profile-$(PROFILE_VERSION).tgz ../
|
||||||
|
|
||||||
|
build/app-profile/user.js: build/app-profile src/app-profile/user.js
|
||||||
|
cp src/app-profile/user.js build/app-profile/user.js
|
||||||
|
|
||||||
|
build/app-profile/prefs.js: build/app-profile src/app-profile/prefs.js
|
||||||
|
cp src/app-profile/prefs.js build/app-profile/prefs.js
|
||||||
|
|
||||||
|
build/app-profile/chrome/userChrome.css: build/app-profile/chrome src/app-profile/chrome/userChrome.css
|
||||||
|
cp src/app-profile/chrome/userChrome.css build/app-profile/chrome/userChrome.css
|
||||||
|
|
||||||
|
build/app-profile/bookmarks.html: build/app-profile src/app-profile/bookmarks.html
|
||||||
|
cp src/app-profile/bookmarks.html build/app-profile/bookmarks.html
|
||||||
|
|
||||||
|
build/app-profile/storage-sync.sqlite: build/app-profile src/app-profile/storage-sync.sqlite
|
||||||
|
cp src/app-profile/storage-sync.sqlite build/app-profile/storage-sync.sqlite
|
||||||
|
|
||||||
|
copy-app-xpi: build/{73a6fe31-595d-460b-a920-fcc0f8843232}.xpi build/https-everywhere-eff@eff.org.xpi build/i2ppb@eyedeekay.github.io.xpi build/app-profile/extensions
|
||||||
|
cp build/{73a6fe31-595d-460b-a920-fcc0f8843232}.xpi "build/app-profile/extensions/{73a6fe31-595d-460b-a920-fcc0f8843232}.xpi"
|
||||||
|
cp build/https-everywhere-eff@eff.org.xpi "build/app-profile/extensions/https-everywhere-eff@eff.org.xpi"
|
||||||
|
cp build/i2ppb@eyedeekay.github.io.xpi build/app-profile/extensions/i2ppb@eyedeekay.github.io.xpi
|
28
makefiles/build.mk
Normal file
28
makefiles/build.mk
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
build/profile/extensions: build/profile
|
||||||
|
mkdir -p build/profile/extensions
|
||||||
|
|
||||||
|
build/profile: build
|
||||||
|
mkdir -p build/profile
|
||||||
|
|
||||||
|
build/win:
|
||||||
|
mkdir -p build/win/
|
||||||
|
|
||||||
|
build/win/i2pbrowser.bat:
|
||||||
|
cp src/win/i2pbrowser.bat build/win/i2pbrowser.bat
|
||||||
|
|
||||||
|
build/win/i2pconfig.bat:
|
||||||
|
cp src/win/i2pconfig.bat build/win/i2pconfig.bat
|
||||||
|
|
||||||
|
build/win/i2pbrowser-private.bat:
|
||||||
|
cp src/win/i2pbrowser-private.bat build/win/i2pbrowser-private.bat
|
||||||
|
|
||||||
|
launchers: build/win build/win/i2pbrowser.bat build/win/i2pbrowser-private.bat build/win/i2pconfig.bat
|
||||||
|
|
||||||
|
build/app-profile/chrome: build/app-profile
|
||||||
|
mkdir -p build/app-profile/chrome
|
||||||
|
|
||||||
|
build/app-profile/extensions: build/app-profile
|
||||||
|
mkdir -p build/app-profile/extensions
|
||||||
|
|
||||||
|
build/app-profile: build
|
||||||
|
mkdir -p build/app-profile
|
55
makefiles/debian.mk
Normal file
55
makefiles/debian.mk
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
orig:
|
||||||
|
tar --exclude=debian --exclude=.git -cvzf ../i2p-firefox-profile_$(PROFILE_VERSION).orig.tar.gz .
|
||||||
|
|
||||||
|
## HOWTO: If you need to release a package to launchpad, build for the oldest
|
||||||
|
## release launchpad supports(bionic AFIACT). Then, after the build is
|
||||||
|
## published, copy it to the other distributions. When bionic is out of date,
|
||||||
|
## update it to the new LTS.
|
||||||
|
|
||||||
|
bionic:
|
||||||
|
@sed -i "s|`head -n 1 debian/changelog`|i2p-firefox-profile ($(PROFILE_VERSION)-1) bionic; urgency=medium|g" debian/changelog
|
||||||
|
make orig
|
||||||
|
debuild -S
|
||||||
|
make dput
|
||||||
|
|
||||||
|
focal:
|
||||||
|
@sed -i "s|`head -n 1 debian/changelog`|i2p-firefox-profile ($(PROFILE_VERSION)-1) focal; urgency=medium|g" debian/changelog
|
||||||
|
make orig
|
||||||
|
debuild -S
|
||||||
|
make dput
|
||||||
|
|
||||||
|
groovy:
|
||||||
|
@sed -i "s|`head -n 1 debian/changelog`|i2p-firefox-profile ($(PROFILE_VERSION)-1) groovy; urgency=medium|g" debian/changelog
|
||||||
|
make orig
|
||||||
|
debuild -S
|
||||||
|
make dput
|
||||||
|
|
||||||
|
buster:
|
||||||
|
@sed -i "s|`head -n 1 debian/changelog`|i2p-firefox-profile ($(PROFILE_VERSION)-1) buster; urgency=medium|g" debian/changelog
|
||||||
|
make orig
|
||||||
|
debuild -S
|
||||||
|
make dput
|
||||||
|
|
||||||
|
bullseye:
|
||||||
|
@sed -i "s|`head -n 1 debian/changelog`|i2p-firefox-profile ($(PROFILE_VERSION)-1) bullseye; urgency=medium|g" debian/changelog
|
||||||
|
make orig
|
||||||
|
debuild -S
|
||||||
|
make dput
|
||||||
|
|
||||||
|
trixie:
|
||||||
|
@sed -i "s|`head -n 1 debian/changelog`|i2p-firefox-profile ($(PROFILE_VERSION)-1) trixie; urgency=medium|g" debian/changelog
|
||||||
|
make orig
|
||||||
|
debuild -S
|
||||||
|
make dput
|
||||||
|
|
||||||
|
sid:
|
||||||
|
@sed -i "s|`head -n 1 debian/changelog`|i2p-firefox-profile ($(PROFILE_VERSION)-1) sid; urgency=medium|g" debian/changelog
|
||||||
|
make orig
|
||||||
|
debuild -S
|
||||||
|
make dput
|
||||||
|
|
||||||
|
dput:
|
||||||
|
dput --simulate --force ppa:i2p-community/ppa ../i2p-firefox-profile_$(PROFILE_VERSION)-1_source.changes || exit
|
||||||
|
dput --force ppa:i2p-community/ppa ../i2p-firefox-profile_$(PROFILE_VERSION)-1_source.changes
|
||||||
|
|
||||||
|
launchpad: bionic
|
12
makefiles/docker.mk
Normal file
12
makefiles/docker.mk
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
docker:
|
||||||
|
docker build -t geti2p/i2p.firefox .
|
||||||
|
|
||||||
|
xhost:
|
||||||
|
xhost + local:docker
|
||||||
|
|
||||||
|
run: docker xhost
|
||||||
|
docker run -it --rm \
|
||||||
|
--net=host \
|
||||||
|
-e DISPLAY=unix$(DISPLAY) \
|
||||||
|
-v /tmp/.X11-unix:/tmp/.X11-unix \
|
||||||
|
geti2p/i2p.firefox firefox --profile /src/build/profile
|
25
makefiles/extensions.mk
Normal file
25
makefiles/extensions.mk
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
|
||||||
|
build-extensions: build/i2ppb@eyedeekay.github.io.xpi build/NoScript.xpi build/HTTPSEverywhere.xpi
|
||||||
|
|
||||||
|
build/i2ppb@eyedeekay.github.io.xpi: i2psetproxy.url
|
||||||
|
curl -L `cat i2psetproxy.url` > build/i2ppb@eyedeekay.github.io.xpi
|
||||||
|
|
||||||
|
build/{73a6fe31-595d-460b-a920-fcc0f8843232}.xpi: NoScript.url
|
||||||
|
curl -L `cat NoScript.url` > "build/{73a6fe31-595d-460b-a920-fcc0f8843232}.xpi"
|
||||||
|
|
||||||
|
build/https-everywhere-eff@eff.org.xpi: HTTPSEverywhere.url
|
||||||
|
curl -L `cat HTTPSEverywhere.url` > build/https-everywhere-eff@eff.org.xpi
|
||||||
|
|
||||||
|
clean-extensions:
|
||||||
|
rm -fv i2psetproxy.url NoScript.url HTTPSEverywhere.url build/i2ppb@eyedeekay.github.io.xpi build/{73a6fe31-595d-460b-a920-fcc0f8843232}.xpi build/https-everywhere-eff@eff.org.xpi
|
||||||
|
|
||||||
|
extensions: HTTPSEverywhere.url NoScript.url i2psetproxy.url
|
||||||
|
|
||||||
|
HTTPSEverywhere.url:
|
||||||
|
@echo "https://addons.mozilla.org/firefox/downloads/file/3809748/"`./amo-version.sh https-everywhere`"/https-everywhere-eff@eff.org.xpi" > HTTPSEverywhere.url
|
||||||
|
|
||||||
|
NoScript.url:
|
||||||
|
@echo "https://addons.mozilla.org/firefox/downloads/file/3534184/"`./amo-version.sh noscript`"/{73a6fe31-595d-460b-a920-fcc0f8843232}.xpi" > NoScript.url
|
||||||
|
|
||||||
|
i2psetproxy.url:
|
||||||
|
@echo "https://addons.mozilla.org/firefox/downloads/file/3887295/"`./amo-version.sh i2p-in-private-browsing`"/i2ppb@eyedeekay.github.io.xpi" > i2psetproxy.url
|
39
makefiles/install.mk
Normal file
39
makefiles/install.mk
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
install:
|
||||||
|
install -D -m644 src/unix/i2pbrowserrc /etc/i2pbrowser/i2pbrowserrc
|
||||||
|
install -D -m644 src/unix/i2pbrowserdebianrc /etc/i2pbrowser/i2pbrowserdebianrc
|
||||||
|
install -D -m755 build/profile/i2pbrowser.sh /usr/local/bin/i2pbrowser
|
||||||
|
install -D -m755 build/app-profile/i2pconfig.sh /usr/local/bin/i2pconfig
|
||||||
|
install -D -m755 src/unix/i2p-config-service-setup.sh /usr/local/bin/i2p-config-service-setup
|
||||||
|
cp -vr build/profile /var/lib/i2pbrowser/profile
|
||||||
|
cp -vr build/app-profile /var/lib/i2pbrowser/app-profile
|
||||||
|
cp -vr src/icons /var/lib/i2pbrowser/icons
|
||||||
|
cp src/unix/desktop/i2pbrowser.desktop /usr/share/applications
|
||||||
|
cp src/unix/desktop/i2pconfig.desktop /usr/share/applications
|
||||||
|
|
||||||
|
uninstall:
|
||||||
|
rm -rfv /etc/i2pbrowser \
|
||||||
|
/var/lib/i2pbrowser \
|
||||||
|
/etc/i2pbrowser/i2pbrowserrc \
|
||||||
|
/usr/local/bin/i2pbrowser \
|
||||||
|
/usr/local/bin/i2pconfig \
|
||||||
|
/usr/local/bin/i2p-config-service-setup \
|
||||||
|
/usr/share/applications/i2pbrowser.desktop \
|
||||||
|
/usr/share/applications/i2pconfig.desktop
|
||||||
|
|
||||||
|
checkinstall: .version
|
||||||
|
checkinstall \
|
||||||
|
--default \
|
||||||
|
--install=no \
|
||||||
|
--fstrans=yes \
|
||||||
|
--pkgname=i2p-firefox \
|
||||||
|
--pkgversion=$(PROFILE_VERSION) \
|
||||||
|
--pkggroup=net \
|
||||||
|
--pkgrelease=1 \
|
||||||
|
--pkgsource="https://i2pgit.org/i2p-hackers/i2p.firefox" \
|
||||||
|
--maintainer="$(SIGNER)" \
|
||||||
|
--requires="firefox,wget" \
|
||||||
|
--suggests="i2p,i2p-router,syndie,tor,tsocks" \
|
||||||
|
--nodoc \
|
||||||
|
--deldoc=yes \
|
||||||
|
--deldesc=yes \
|
||||||
|
--backup=no
|
@@ -1,4 +1,18 @@
|
|||||||
|
|
||||||
|
build-new-extensions: build/i2ppb@eyedeekay.github.io.xpi build/NoScript.xpi build/HTTPSEverywhere.xpi
|
||||||
|
|
||||||
|
build/uBlock0@raymondhill.net.xpi:
|
||||||
|
curl -L `cat UblockOrigin.url` > build/uBlock0@raymondhill.net.xpi
|
||||||
|
|
||||||
|
build//jsr@javascriptrestrictor.xpi:
|
||||||
|
curl -L `cat JShelter.url` > build/jsr@javascriptrestrictor.xpi
|
||||||
|
|
||||||
|
build/onioncbt@eyedeekay.github.io.xpi:
|
||||||
|
curl -L `cat onioncontainer.url` > build/onioncbt@eyedeekay.github.io.xpi
|
||||||
|
|
||||||
|
build/{b86e4813-687a-43e6-ab65-0bde4ab75758}.xpi:
|
||||||
|
curl -L `cat LocalCDN.url` > build//{b86e4813-687a-43e6-ab65-0bde4ab75758}.xpi
|
||||||
|
|
||||||
UBlockOrigin.url:
|
UBlockOrigin.url:
|
||||||
@echo "https://addons.mozilla.org/firefox/downloads/file/3892224/"`./amo-version.sh ublock-origin`"/uBlock0@raymondhill.net.xpi" > UBlockOrigin.url
|
@echo "https://addons.mozilla.org/firefox/downloads/file/3892224/"`./amo-version.sh ublock-origin`"/uBlock0@raymondhill.net.xpi" > UBlockOrigin.url
|
||||||
|
|
||||||
@@ -11,4 +25,7 @@ onioncontainer.url:
|
|||||||
LocalCDN.url:
|
LocalCDN.url:
|
||||||
@echo "https://addons.mozilla.org/firefox/downloads/file/3902456/"`./amo-version.sh localcdn-fork-of-decentraleyes`"/{b86e4813-687a-43e6-ab65-0bde4ab75758}.xpi" > LocalCDN.url
|
@echo "https://addons.mozilla.org/firefox/downloads/file/3902456/"`./amo-version.sh localcdn-fork-of-decentraleyes`"/{b86e4813-687a-43e6-ab65-0bde4ab75758}.xpi" > LocalCDN.url
|
||||||
|
|
||||||
|
clean-new-extensions:
|
||||||
|
rm -f UBlockOrigin.url JShelter.url onioncontainer.url LocalCDN.url build/i2ppb@eyedeekay.github.io.xpi build/onioncbt@eyedeekay.github.io.xpi
|
||||||
|
|
||||||
new-extensions: UBlockOrigin.url JShelter.url onioncontainer.url LocalCDN.url
|
new-extensions: UBlockOrigin.url JShelter.url onioncontainer.url LocalCDN.url
|
26
makefiles/profile.mk
Normal file
26
makefiles/profile.mk
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
|
||||||
|
profile: build/profile/user.js build/profile/prefs.js build/profile/bookmarks.html build/profile/storage-sync.sqlite copy-xpi
|
||||||
|
|
||||||
|
profile.tgz: .version profile
|
||||||
|
# $(eval PROFILE_VERSION := $(shell cat src/profile/version.txt))
|
||||||
|
@echo "building profile tarball $(PROFILE_VERSION)"
|
||||||
|
sh -c 'ls I2P && cp -rv build/I2P build/profile/I2P'; true
|
||||||
|
install -m755 src/unix/i2pbrowser.sh build/profile/i2pbrowser.sh
|
||||||
|
cd build && tar -czf profile-$(PROFILE_VERSION).tgz profile && cp profile-$(PROFILE_VERSION).tgz ../
|
||||||
|
|
||||||
|
build/profile/user.js: build/profile src/profile/user.js
|
||||||
|
cp src/profile/user.js build/profile/user.js
|
||||||
|
|
||||||
|
build/profile/prefs.js: build/profile src/profile/prefs.js
|
||||||
|
cp src/profile/prefs.js build/profile/prefs.js
|
||||||
|
|
||||||
|
build/profile/bookmarks.html: build/profile src/profile/bookmarks.html
|
||||||
|
cp src/profile/bookmarks.html build/profile/bookmarks.html
|
||||||
|
|
||||||
|
build/profile/storage-sync.sqlite: build/profile src/profile/storage-sync.sqlite
|
||||||
|
cp src/profile/storage-sync.sqlite build/profile/storage-sync.sqlite
|
||||||
|
|
||||||
|
copy-xpi: build/{73a6fe31-595d-460b-a920-fcc0f8843232}.xpi build/https-everywhere-eff@eff.org.xpi build/i2ppb@eyedeekay.github.io.xpi build/profile/extensions
|
||||||
|
cp build/{73a6fe31-595d-460b-a920-fcc0f8843232}.xpi "build/profile/extensions/{73a6fe31-595d-460b-a920-fcc0f8843232}.xpi"
|
||||||
|
cp build/https-everywhere-eff@eff.org.xpi "build/profile/extensions/https-everywhere-eff@eff.org.xpi"
|
||||||
|
cp build/i2ppb@eyedeekay.github.io.xpi build/profile/extensions/i2ppb@eyedeekay.github.io.xpi
|
35
makefiles/su-unsigned.mk
Normal file
35
makefiles/su-unsigned.mk
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
|
||||||
|
prepupdate-unsignedexe:
|
||||||
|
cp -v "I2P-Profile-Installer-$(PROFILE_VERSION).su3" i2pwinupdate-unsignedexe.su3
|
||||||
|
|
||||||
|
su3-unsignedexe: $(GOPATH)/src/i2pgit.org/idk/su3-tools/su3-tools
|
||||||
|
$(GOPATH)/src/i2pgit.org/idk/su3-tools/su3-tools -name "I2P-Profile-Installer-$(PROFILE_VERSION)" -signer "$(SIGNER)" -version "$(I2P_VERSION)"
|
||||||
|
java -cp "$(HOME)/i2p/lib/*" net.i2p.crypto.SU3File sign -c ROUTER -f EXE I2P-Profile-Installer-$(PROFILE_VERSION).exe I2P-Profile-Installer-$(PROFILE_VERSION)-signed.su3 "$(HOME)/.i2p-plugin-keys/news-su3-keystore.ks" "$(I2P_VERSION)" $(SIGNER)
|
||||||
|
|
||||||
|
i2pwinupdate-unsignedexe.su3.torrent: prepupdate-unsignedexe su3-unsignedexe
|
||||||
|
mktorrent \
|
||||||
|
--announce=http://tracker2.postman.i2p/announce.php \
|
||||||
|
--announce=http://w7tpbzncbcocrqtwwm3nezhnnsw4ozadvi2hmvzdhrqzfxfum7wa.b32.i2p/a \
|
||||||
|
--announce=http://mb5ir7klpc2tj6ha3xhmrs3mseqvanauciuoiamx2mmzujvg67uq.b32.i2p/a \
|
||||||
|
i2pwinupdate-unsignedexe.su3
|
||||||
|
|
||||||
|
torrent-unsignedexe: i2pwinupdate-unsignedexe.su3.torrent
|
||||||
|
|
||||||
|
testing-releases.json: torrent-unsignedexe
|
||||||
|
mkdir -p ../i2p.newsxml/data/win/testing/
|
||||||
|
@echo "[" | tee ../i2p.newsxml/data/win/testing/releases.json
|
||||||
|
@echo " {" | tee -a ../i2p.newsxml/data/win/testing/releases.json
|
||||||
|
@echo " \"date\": \"$(I2P_DATE)\"," | tee -a ../i2p.newsxml/data/win/testing/releases.json
|
||||||
|
@echo " \"version\": \"$(I2P_VERSION)\"," | tee -a ../i2p.newsxml/data/win/testing/releases.json
|
||||||
|
@echo " \"minVersion\": \"1.5.0\"," | tee -a ../i2p.newsxml/data/win/testing/releases.json
|
||||||
|
@echo " \"minJavaVersion\": \"1.8\"," | tee -a ../i2p.newsxml/data/win/testing/releases.json
|
||||||
|
@echo " \"updates\": {" | tee -a ../i2p.newsxml/data/win/testing/releases.json
|
||||||
|
@echo " \"su3\": {" | tee -a ../i2p.newsxml/data/win/testing/releases.json
|
||||||
|
@echo " \"torrent\": \"$(MAGNET_TESTING)\"," | tee -a ../i2p.newsxml/data/win/testing/releases.json
|
||||||
|
@echo " \"url\": [" | tee -a ../i2p.newsxml/data/win/testing/releases.json
|
||||||
|
@echo " \"http://ekm3fu6fr5pxudhwjmdiea5dovc3jdi66hjgop4c7z7dfaw7spca.b32.i2p/i2pwinupdate.su3\"" | tee -a ../i2p.newsxml/data/win/testing/releases.json
|
||||||
|
@echo " ]" | tee -a ../i2p.newsxml/data/win/testing/releases.json
|
||||||
|
@echo " }" | tee -a ../i2p.newsxml/data/win/testing/releases.json
|
||||||
|
@echo " }" | tee -a ../i2p.newsxml/data/win/testing/releases.json
|
||||||
|
@echo " }" | tee -a ../i2p.newsxml/data/win/testing/releases.json
|
||||||
|
@echo "]" | tee -a ../i2p.newsxml/data/win/testing/releases.json
|
41
makefiles/su.mk
Normal file
41
makefiles/su.mk
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
GOPATH=$(HOME)/go
|
||||||
|
|
||||||
|
$(GOPATH)/src/i2pgit.org/idk/su3-tools/su3-tools:
|
||||||
|
git clone https://i2pgit.org/idk/su3-tools $(GOPATH)/src/i2pgit.org/idk/su3-tools; true
|
||||||
|
git pull --all
|
||||||
|
cd $(GOPATH)/src/i2pgit.org/idk/su3-tools && \
|
||||||
|
go mod vendor && go build
|
||||||
|
|
||||||
|
prepupdate:
|
||||||
|
cp -v "I2P-Profile-Installer-$(PROFILE_VERSION)-signed.su3" i2pwinupdate.su3
|
||||||
|
|
||||||
|
su3: $(GOPATH)/src/i2pgit.org/idk/su3-tools/su3-tools
|
||||||
|
$(GOPATH)/src/i2pgit.org/idk/su3-tools/su3-tools -name "I2P-Profile-Installer-$(PROFILE_VERSION)-signed" -signer "$(SIGNER)" -version "$(I2P_VERSION)"
|
||||||
|
java -cp "$(HOME)/i2p/lib/*" net.i2p.crypto.SU3File sign -c ROUTER -f EXE I2P-Profile-Installer-$(PROFILE_VERSION)-signed.exe I2P-Profile-Installer-$(PROFILE_VERSION)-signed.su3 "$(HOME)/.i2p-plugin-keys/news-su3-keystore.ks" "$(I2P_VERSION)" $(SIGNER)
|
||||||
|
|
||||||
|
i2pwinupdate.su3.torrent: prepupdate su3
|
||||||
|
mktorrent \
|
||||||
|
--announce=http://tracker2.postman.i2p/announce.php \
|
||||||
|
--announce=http://w7tpbzncbcocrqtwwm3nezhnnsw4ozadvi2hmvzdhrqzfxfum7wa.b32.i2p/a \
|
||||||
|
--announce=http://mb5ir7klpc2tj6ha3xhmrs3mseqvanauciuoiamx2mmzujvg67uq.b32.i2p/a \
|
||||||
|
i2pwinupdate.su3
|
||||||
|
|
||||||
|
torrent: i2pwinupdate.su3.torrent
|
||||||
|
|
||||||
|
releases.json: torrent
|
||||||
|
@echo "[" | tee ../i2p.newsxml/data/win/beta/releases.json
|
||||||
|
@echo " {" | tee -a ../i2p.newsxml/data/win/beta/releases.json
|
||||||
|
@echo " \"date\": \"$(I2P_DATE)\"," | tee -a ../i2p.newsxml/data/win/beta/releases.json
|
||||||
|
@echo " \"version\": \"$(I2P_VERSION)\"," | tee -a ../i2p.newsxml/data/win/beta/releases.json
|
||||||
|
@echo " \"minVersion\": \"1.5.0\"," | tee -a ../i2p.newsxml/data/win/beta/releases.json
|
||||||
|
@echo " \"minJavaVersion\": \"1.8\"," | tee -a ../i2p.newsxml/data/win/beta/releases.json
|
||||||
|
@echo " \"updates\": {" | tee -a ../i2p.newsxml/data/win/beta/releases.json
|
||||||
|
@echo " \"su3\": {" | tee -a ../i2p.newsxml/data/win/beta/releases.json
|
||||||
|
@echo " \"torrent\": \"$(MAGNET)\"," | tee -a ../i2p.newsxml/data/win/beta/releases.json
|
||||||
|
@echo " \"url\": [" | tee -a ../i2p.newsxml/data/win/beta/releases.json
|
||||||
|
@echo " \"http://ekm3fu6fr5pxudhwjmdiea5dovc3jdi66hjgop4c7z7dfaw7spca.b32.i2p/i2pwinupdate.su3\"" | tee -a ../i2p.newsxml/data/win/beta/releases.json
|
||||||
|
@echo " ]" | tee -a ../i2p.newsxml/data/win/beta/releases.json
|
||||||
|
@echo " }" | tee -a ../i2p.newsxml/data/win/beta/releases.json
|
||||||
|
@echo " }" | tee -a ../i2p.newsxml/data/win/beta/releases.json
|
||||||
|
@echo " }" | tee -a ../i2p.newsxml/data/win/beta/releases.json
|
||||||
|
@echo "]" | tee -a ../i2p.newsxml/data/win/beta/releases.json
|
Reference in New Issue
Block a user