From b13bdcbac6c06fc4ca3b221fe5d0c991cf8f006a Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Sun, 29 Jun 2025 16:48:11 +0800 Subject: [PATCH] openlist: move from alist and update to 4.0.5 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 --- net/alist/Makefile | 88 ------------------ net/alist/test.sh | 3 - net/openlist/Makefile | 92 +++++++++++++++++++ .../files/openlist.config} | 2 +- .../files/openlist.init} | 6 +- net/openlist/files/openlist.uci | 13 +++ net/openlist/test.sh | 3 + 7 files changed, 112 insertions(+), 95 deletions(-) delete mode 100644 net/alist/Makefile delete mode 100644 net/alist/test.sh create mode 100644 net/openlist/Makefile rename net/{alist/files/alist.config => openlist/files/openlist.config} (96%) rename net/{alist/files/alist.init => openlist/files/openlist.init} (97%) create mode 100644 net/openlist/files/openlist.uci create mode 100644 net/openlist/test.sh diff --git a/net/alist/Makefile b/net/alist/Makefile deleted file mode 100644 index b4b16aa53a..0000000000 --- a/net/alist/Makefile +++ /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 - -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 index efcb07e4c9..0000000000 --- a/net/alist/test.sh +++ /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 index 0000000000..0d589e50e1 --- /dev/null +++ b/net/openlist/Makefile @@ -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 + +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)) diff --git a/net/alist/files/alist.config b/net/openlist/files/openlist.config similarity index 96% rename from net/alist/files/alist.config rename to net/openlist/files/openlist.config index 519036655e..8a763574a8 100644 --- a/net/alist/files/alist.config +++ b/net/openlist/files/openlist.config @@ -1,5 +1,5 @@ -config alist 'config' +config openlist 'config' option enabled '0' option debug '0' diff --git a/net/alist/files/alist.init b/net/openlist/files/openlist.init similarity index 97% rename from net/alist/files/alist.init rename to net/openlist/files/openlist.init index a06e4e165d..5d1d13a15c 100644 --- a/net/alist/files/alist.init +++ b/net/openlist/files/openlist.init @@ -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 index 0000000000..4a36d0f628 --- /dev/null +++ b/net/openlist/files/openlist.uci @@ -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 index 0000000000..d09b0bab7d --- /dev/null +++ b/net/openlist/test.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +openlist version | grep "$PKG_VERSION" -- 2.30.2