i2pd: Update to 2.23.0, fix #7845 and #8088 8092/head
authorDavid Yang <mmyangfl@gmail.com>
Thu, 31 Jan 2019 14:57:05 +0000 (22:57 +0800)
committerDavid Yang <mmyangfl@gmail.com>
Thu, 7 Feb 2019 06:58:05 +0000 (14:58 +0800)
Signed-off-by: David Yang <mmyangfl@gmail.com>
net/i2pd/Makefile
net/i2pd/files/i2pd.config [new file with mode: 0644]
net/i2pd/files/i2pd.init

index b1b396839a6eb5e0a05744d6ed6299d4b1008a1d..c2e484cec836f434ffed1b753e96e506b5a1b197 100644 (file)
@@ -9,13 +9,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=i2pd
-PKG_VERSION:=2.22.0
+PKG_VERSION:=2.23.0
 PKG_RELEASE:=1
 PKG_BUILD_PARALLEL:=1
 
 PKG_SOURCE_URL:=https://codeload.github.com/PurpleI2P/i2pd/tar.gz/$(PKG_VERSION)?
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_HASH:=6547d7a560482c5eda9106ae19267bc8afbb6af48fed3bebf423ade28103e173
+PKG_HASH:=19e8573b44b94ce83bd5705569934049cb1dc39db11449abcb9e4b36afe5a279
 PKG_LICENSE:=BSD-3-clause
 
 include $(INCLUDE_DIR)/package.mk
@@ -38,8 +38,8 @@ define Package/i2pd/description
 endef
 
 define Package/i2pd/conffiles
+       /etc/config/i2pd
        /etc/i2pd/i2pd.conf
-       /etc/i2pd/subscriptions.txt
        /etc/i2pd/tunnels.conf
 endef
 
@@ -51,14 +51,15 @@ define Package/i2pd/install
        $(INSTALL_BIN) $(PKG_BUILD_DIR)/i2pd $(1)/usr/sbin
        $(INSTALL_DIR) $(1)/usr/share/i2pd
        $(CP) $(PKG_BUILD_DIR)/contrib/certificates  $(1)/usr/share/i2pd
+       $(INSTALL_DIR) $(1)/etc/config
+       $(INSTALL_CONF) ./files/i2pd.config $(1)/etc/config/i2pd
        $(INSTALL_DIR) $(1)/etc/i2pd
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/contrib/i2pd.conf $(1)/etc/i2pd
+       $(INSTALL_CONF) $(PKG_BUILD_DIR)/contrib/i2pd.conf $(1)/etc/i2pd
        $(SED) ' \
                s/127.0.0.1/192.168.1.1/g; \
                s/datadir = \/var\/lib/datadir = \/etc/ \
        ' $(1)/etc/i2pd/i2pd.conf
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/contrib/subscriptions.txt $(1)/etc/i2pd
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/contrib/tunnels.conf $(1)/etc/i2pd
+       $(INSTALL_CONF) $(PKG_BUILD_DIR)/contrib/tunnels.conf $(1)/etc/i2pd
        $(INSTALL_DIR) $(1)/etc/init.d
        $(INSTALL_BIN) ./files/i2pd.init $(1)/etc/init.d/i2pd
 endef
diff --git a/net/i2pd/files/i2pd.config b/net/i2pd/files/i2pd.config
new file mode 100644 (file)
index 0000000..ca6f3c7
--- /dev/null
@@ -0,0 +1,15 @@
+config i2pd
+       # Set where i2pd should store its data (netDB, certificates, addresses, etc)
+       # By default we store it in RAM so no data is written to ROM.
+       # IMPORTANT!
+       # Data is consistently rewritten. DO NOT POINT IT TO INNER ROM. Flash will
+       # die.
+       option data_dir '/var/lib/i2pd'
+
+       # If you don't store i2pd data permanently, you can still choose to store only
+       # addressbook. If not, i2pd will be forced to do HTTP reseeding reseeding on
+       # every start. Storing addressbook may be useful if HTTP reseeding is not
+       # possible or blocked (by censorship).
+       # Even addressbook doesn't take up too much space, extroot is still strongly
+       # recommended to avoid flash wear-out.
+       #option addressbook_dir '/etc/i2pd/addressbook'
index 81e97cdce53eadce7b137152649f8c2efd3a7470..4af1013637478dd1617e9ac0a1d02b54c48a4bb0 100755 (executable)
@@ -6,36 +6,54 @@ USE_PROCD=1
 START=90
 STOP=10
 
+# default params
 PROG=/usr/sbin/i2pd
 USER="i2pd"
 GROUP="i2pd"
 PIDFILE=/var/run/i2pd.pid
-DATADIR=/var/lib/i2pd
+#DATADIR=/var/lib/i2pd
+CONFFILE=/etc/i2pd/i2pd.conf
+
+. /lib/functions.sh
+
 
 
 start_service() {
-       ## RAM
-       if [ ! -d $DATADIR ]; then
-               mkdir -p $DATADIR
-               ln -s /usr/share/i2pd/certificates  $DATADIR/certificates
-               ln -s /etc/i2pd/tunnels.conf $DATADIR/tunnels.conf
-               # for peoples who not possible to use http reseeding
-               ln -s /etc/i2pd/addressbook $DATADIR/addressbook
+       local data_dir
+       local addressbook_dir
+
+       config_load i2pd
+
+       config_get data_dir i2pd data_dir
+       config_get addressbook_dir i2pd addressbook_dir
+
+       ## Setting up data dir
+       if [ ! -d "$data_dir" ]; then
+               mkdir -p "$data_dir"
+               ln -s /usr/share/i2pd/certificates "$data_dir/certificates"
+               ln -s /etc/i2pd/tunnels.conf "$data_dir/tunnels.conf"
+               if [ -n "$addressbook_dir" ]; then
+                       if [ ! -d "$addressbook_dir" ]; then
+                               mkdir -p "$addressbook_dir"
+                       fi
+                       ln -s "$addressbook_dir" "$data_dir/addressbook"
+               fi
        fi
 
        ## We need permissions
-       chown $USER:$GROUP $DATADIR
-       touch $PIDFILE
-       chown $USER:adm $PIDFILE
+       chown "$USER:$GROUP" "$data_dir"
+       chown "$USER:$GROUP" "$addressbook_dir"
+       touch "$PIDFILE"
+       chown "$USER:adm" "$PIDFILE"
 
        procd_open_instance
-       procd_set_param command $PROG --service --conf=/etc/i2pd/i2pd.conf --pidfile $PIDFILE
+       procd_set_param command "$PROG" --service --conf="$CONFFILE" --pidfile "$PIDFILE"
        ## Don't know about i2pd user's HOME
-       procd_set_param env HOME=$DATADIR
+       procd_set_param env "HOME=$DATADIR"
        procd_set_param limits nofile=4096
        procd_set_param stdout 1
        procd_set_param stderr 1
-       procd_set_param user $USER
-       procd_set_param pidfile $PIDFILE
+       procd_set_param user "$USER"
+       procd_set_param pidfile "$PIDFILE"
        procd_close_instance
 }