openlist: move from alist and update to 4.0.5
authorTianling Shen <redacted>
Sun, 29 Jun 2025 08:48:11 +0000 (16:48 +0800)
committerTianling Shen <redacted>
Mon, 30 Jun 2025 17:04:08 +0000 (01:04 +0800)
The alist was sold to a Chinese commercial company by the project owner
without any clarification. Though the company bought it nearly a half
year ago, they still cannot show a clear roadmap and privacy policy now.
They also tried to collect runtime information from the user, but the
code was not merged into the main tree "luckily".

Anyway, various behaviors from the company indicate they are untrustable,
so the other developers from the alist project have forked and made a new
project named OpenList, which will continue to be maintained by the community.

===== security note =====
The alist code up to 3.45.0 has been reviewed "clean", however the main
problem is from the author's private API that used to connect to cloud drives.
For security reasons, please reset your password and/or token if possible.

Signed-off-by: Tianling Shen <redacted>
net/alist/Makefile [deleted file]
net/alist/test.sh [deleted file]
net/openlist/Makefile [new file with mode: 0644]
net/openlist/files/openlist.config [moved from net/alist/files/alist.config with 96% similarity]
net/openlist/files/openlist.init [moved from net/alist/files/alist.init with 97% similarity]
net/openlist/files/openlist.uci [new file with mode: 0644]
net/openlist/test.sh [new file with mode: 0644]

diff --git a/net/alist/Makefile b/net/alist/Makefile
deleted file mode 100644 (file)
index b4b16aa..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-only
-#
-# Copyright (C) 2023 ImmortalWrt.org
-
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:=alist
-PKG_VERSION:=3.45.0
-PKG_RELEASE:=1
-
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=https://codeload.github.com/AlistGo/alist/tar.gz/v$(PKG_VERSION)?
-PKG_HASH:=224119ea5a3b43694e5342c460ab471d6477db1bf7ade5180d542a32363cb097
-
-PKG_LICENSE:=AGPL-3.0-only
-PKG_LICENSE_FILES:=LICENSE
-PKG_MAINTAINER:=Tianling Shen <cnsztl@immortalwrt.org>
-
-PKG_BUILD_DEPENDS:=golang/host
-PKG_BUILD_PARALLEL:=1
-PKG_BUILD_FLAGS:=no-mips16
-
-GO_PKG:=github.com/alist-org/alist/v3
-GO_PKG_LDFLAGS_X = \
-       $(GO_PKG)/internal/conf.Version=$(PKG_VERSION) \
-       $(GO_PKG)/internal/conf.WebVersion=$(WEB_VERSION)
-ifeq ($(filter aarch64 x86_64, $(ARCH)),)
-  GO_PKG_EXCLUDES:=drivers/lark
-endif
-
-include $(INCLUDE_DIR)/package.mk
-include ../../lang/golang/golang-package.mk
-
-define Package/alist
-  SECTION:=net
-  CATEGORY:=Network
-  TITLE:=A file list program that supports multiple storage
-  URL:=https://alist.nn.ci
-  DEPENDS:=$(GO_ARCH_DEPENDS) +ca-bundle +fuse-utils
-endef
-
-define Package/alist/description
-  A file list program that supports multiple storage, and supports
-  web browsing and webdav, powered by gin and Solidjs.
-endef
-
-define Package/alist/conffiles
-/etc/alist/
-/etc/config/alist
-endef
-
-WEB_VERSION:=3.45.0
-WEB_FILE:=$(PKG_NAME)-web-$(WEB_VERSION).tar.gz
-define Download/alist-web
-       URL:=https://github.com/AlistGo/alist-web/releases/download/$(WEB_VERSION)/
-       URL_FILE:=dist.tar.gz
-       FILE:=$(WEB_FILE)
-       HASH:=408b1822893ba6dd6bbeb4055d6c8b96c178d10f4fbb8e5696cf14dcc88dd2fb
-endef
-
-define Build/Prepare
-       $(call Build/Prepare/Default)
-
-       ( \
-               mkdir -p $(PKG_BUILD_DIR)/public ; \
-               gzip -dc $(DL_DIR)/$(WEB_FILE) | $(HOST_TAR) -C $(PKG_BUILD_DIR)/public $(TAR_OPTIONS) ; \
-       )
-endef
-
-ifneq ($(CONFIG_USE_MUSL),)
-  TARGET_CFLAGS += -D_LARGEFILE64_SOURCE
-endif
-
-define Package/alist/install
-       $(call GoPackage/Package/Install/Bin,$(PKG_INSTALL_DIR))
-
-       $(INSTALL_DIR) $(1)/usr/bin/
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/alist $(1)/usr/bin/
-
-       $(INSTALL_DIR) $(1)/etc/config
-       $(INSTALL_CONF) $(CURDIR)/files/alist.config $(1)/etc/config/alist
-       $(INSTALL_DIR) $(1)/etc/init.d
-       $(INSTALL_BIN) $(CURDIR)/files/alist.init $(1)/etc/init.d/alist
-endef
-
-$(eval $(call Download,alist-web))
-$(eval $(call GoBinPackage,alist))
-$(eval $(call BuildPackage,alist))
diff --git a/net/alist/test.sh b/net/alist/test.sh
deleted file mode 100644 (file)
index efcb07e..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-
-alist version | grep "$PKG_VERSION"
diff --git a/net/openlist/Makefile b/net/openlist/Makefile
new file mode 100644 (file)
index 0000000..0d589e5
--- /dev/null
@@ -0,0 +1,92 @@
+# SPDX-License-Identifier: GPL-2.0-only
+#
+# Copyright (C) 2023-2025 ImmortalWrt.org
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=openlist
+PKG_VERSION:=4.0.5
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://codeload.github.com/OpenListTeam/OpenList/tar.gz/v$(PKG_VERSION)?
+PKG_HASH:=c510e31d00868774b52429897c39789547756bbea76c501e2bcfbff1f4dc70b8
+PKG_BUILD_DIR:=$(BUILD_DIR)/OpenList-$(PKG_VERSION)
+
+PKG_LICENSE:=AGPL-3.0-only
+PKG_LICENSE_FILES:=LICENSE
+PKG_MAINTAINER:=Tianling Shen <cnsztl@immortalwrt.org>
+
+PKG_BUILD_DEPENDS:=golang/host
+PKG_BUILD_PARALLEL:=1
+PKG_BUILD_FLAGS:=no-mips16
+
+GO_PKG:=github.com/OpenListTeam/OpenList
+GO_PKG_LDFLAGS_X = \
+       $(GO_PKG)/internal/conf.Version=$(PKG_VERSION) \
+       $(GO_PKG)/internal/conf.WebVersion=$(WEB_VERSION)
+ifeq ($(filter aarch64 x86_64, $(ARCH)),)
+  GO_PKG_EXCLUDES:=drivers/lark
+endif
+
+include $(INCLUDE_DIR)/package.mk
+include ../../lang/golang/golang-package.mk
+
+define Package/openlist
+  SECTION:=net
+  CATEGORY:=Network
+  TITLE:=A file list program that supports multiple storage
+  URL:=https://docs.oplist.org
+  DEPENDS:=$(GO_ARCH_DEPENDS) +ca-bundle +fuse-utils
+  PROVIDES:=alist
+endef
+
+define Package/openlist/description
+  A file list program that supports multiple storage, and supports
+  web browsing and webdav, powered by gin and Solidjs, fork of AList.
+endef
+
+define Package/openlist/conffiles
+/etc/openlist/
+/etc/config/openlist
+endef
+
+WEB_VERSION:=4.0.5
+WEB_FILE:=$(PKG_NAME)-frontend-dist-v$(WEB_VERSION).tar.gz
+define Download/openlist-web
+       URL:=https://github.com/OpenListTeam/OpenList-Frontend/releases/download/v$(WEB_VERSION)/
+       URL_FILE:=$(WEB_FILE)
+       FILE:=$(WEB_FILE)
+       HASH:=0b755542c660ac66c86689957cd0d5c783ad5dac64222f764988f1c26c51d55a
+endef
+
+define Build/Prepare
+       $(call Build/Prepare/Default)
+
+       ( \
+               mkdir -p $(PKG_BUILD_DIR)/public/dist ; \
+               libdeflate-gzip -dc $(DL_DIR)/$(WEB_FILE) | $(HOST_TAR) -C $(PKG_BUILD_DIR)/public/dist $(TAR_OPTIONS) ; \
+       )
+endef
+
+ifneq ($(CONFIG_USE_MUSL),)
+  TARGET_CFLAGS += -D_LARGEFILE64_SOURCE
+endif
+
+define Package/openlist/install
+       $(call GoPackage/Package/Install/Bin,$(PKG_INSTALL_DIR))
+
+       $(INSTALL_DIR) $(1)/usr/bin/
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/OpenList $(1)/usr/bin/openlist
+
+       $(INSTALL_DIR) $(1)/etc/config
+       $(INSTALL_CONF) $(CURDIR)/files/openlist.config $(1)/etc/config/openlist
+       $(INSTALL_DIR) $(1)/etc/init.d
+       $(INSTALL_BIN) $(CURDIR)/files/openlist.init $(1)/etc/init.d/openlist
+       $(INSTALL_DIR) $(1)/etc/uci-defaults
+       $(INSTALL_BIN) $(CURDIR)/files/openlist.uci $(1)/etc/uci-defaults/99-migrate-openlist
+endef
+
+$(eval $(call Download,openlist-web))
+$(eval $(call GoBinPackage,openlist))
+$(eval $(call BuildPackage,openlist))
similarity index 96%
rename from net/alist/files/alist.config
rename to net/openlist/files/openlist.config
index 519036655e74f6e4511167ebe480414543ee1164..8a763574a8f17d6c4f685ad3e2127b89b8e50a74 100644 (file)
@@ -1,5 +1,5 @@
 
-config alist 'config'
+config openlist 'config'
        option enabled '0'
        option debug '0'
 
similarity index 97%
rename from net/alist/files/alist.init
rename to net/openlist/files/openlist.init
index a06e4e165d38b8076a8c2692a0ad2a33e9523755..5d1d13a15c1c06c006b04f378f3b29e8d7a53757 100644 (file)
@@ -3,8 +3,8 @@
 USE_PROCD=1
 START=99
 
-CONF="alist"
-PROG="/usr/bin/alist"
+CONF="openlist"
+PROG="/usr/bin/openlist"
 CONF_DIR="/etc/$CONF"
 RUN_DIR="/var/run/$CONF"
 
@@ -71,7 +71,7 @@ start_service() {
        json_add_string "bleve_dir" "$CONF_DIR/bleve"
        json_add_object "log"
                uci_json_add_boolean "enable" "log_enable" "1"
-               json_add_string "name" "$RUN_DIR/log/alist.log"
+               json_add_string "name" "$RUN_DIR/log/openlist.log"
                uci_json_add_int "max_size" "log_max_size" "5"
                uci_json_add_int "max_backups" "log_max_backups" "1"
                uci_json_add_int "max_age" "log_max_age" "15"
diff --git a/net/openlist/files/openlist.uci b/net/openlist/files/openlist.uci
new file mode 100644 (file)
index 0000000..4a36d0f
--- /dev/null
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+if [ -d "/etc/alist" ]; then
+       mv -f "/etc/alist" "/etc/openlist"
+fi
+
+if [ -f "/etc/config/alist" ]; then
+       mv -f "/etc/config/alist" "/etc/config/openlist"
+       uci -q set openlist.config=openlist
+       uci -q commit openlist
+fi
+
+exit 0
diff --git a/net/openlist/test.sh b/net/openlist/test.sh
new file mode 100644 (file)
index 0000000..d09b0ba
--- /dev/null
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+openlist version | grep "$PKG_VERSION"
git clone https://git.99rst.org/PROJECT