Skip to content

linkease/openwrt-app-meta

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OpenWRT应用程序元数据

目录结构

  • applications
    • app-meta-*
      • Makefile - 描述文件,参考下文约定
      • logo.png - 图标文件,目前只支持png
      • config.sh - 自动配置脚本
  • fake-top - 辅助文件,无需关注
  • Makefile - 辅助文件,无需关注
  • meta.mk - 辅助文件,无需关注

Makefile书写约定

  1. META_TITLE:= 使用官方名称,如果有中文就用中文
  2. META_DESCRIPTION:= 中文描述
  3. META_AUTHOR:= 是作者名称,如果是非个人作者则填组织或者公司名称
  4. META_DEPENDS:= 的第一个应该是能代表这个APP的主包,方便作为版本更新的依据,不要将其他插件可能依赖的包加到这里,以免卸载时将其他插件也卸载了,如果需要添加额外的包,参考下面的#依赖额外的包
  5. META_ARCH:= 用来填写支持的处理器架构,如果是架构无关的应用或者OpenWRT官方仓库支持的软件包则不需要这一行。如果有多个架构用空格隔开,例如x86_64 aarch64。目前可能的取值有x86_64x86aarch64arm
  6. PKG_VERSION:= 版本号,尽量跟主包保持一致
  7. PKG_RELEASE:= 元数据修正版本,必须是数字,可以使用 123 或者日期如 20240314。在版本号 PKG_VERSION 未变更的情况下可以通过提升 PKG_RELEASE 来产生更新。
  8. META_WEBSITE:= 官网链接(注意如果链接包含#,需要转义成\#)
  9. META_TUTORIAL:= 教程链接(注意如果链接包含#,需要转义成\#)
  10. META_AUTOCONF:= 用来配合自动配置脚本,这里填写支持的自动配置参数,如果不支持自动配置请勿包含这一行。如果有多个配置参数用空格隔开,例如path enable。目前可能的取值有path(配置/数据路径),enable(安装完立即启动)
  11. META_UCI:= 插件的主要UCI配置文件名,用来检查插件是否已经被手动/自动配置过。填写文件名即可,例如aria2

国际化

  1. META_TITLE.en:= 英文名称,如果跟META_TITLE一样就不用填
  2. META_DESCRIPTION.en:= 英文描述

依赖额外的包

由于 iStore 卸载插件的时候会将META_DEPENDS列表里的软件包都卸载,所以不能将其他插件共同依赖的软件包加到列表里。一般情况下,插件的主包就已经依赖需要的软件包了,不用再写到META_DEPENDS中。如果某些软件包没被主包依赖,又希望安装,那么参考下面的步骤:

  1. 编辑dummy/Makefile,添加一行$(eval $(call DummyPackage,插件名-deps,+额外依赖,,0.00)),例如serverchan添加额外的+iputils-arping +curl +jq依赖:
    $(eval $(call DummyPackage,serverchan-deps,+iputils-arping +curl +jq,,0.00))
  2. 在之前的MakefileMETA_DEPENDS:=位置添加+插件名-deps,例如serverchan
    META_DEPENDS:=+luci-app-serverchan +serverchan-deps

注意:如果插件依赖 Docker ,请使用META_DEPENDS:=+docker-deps

自动配置脚本

自动配置插件的脚本,由iStore或其他插件在此插件安装完以后根据用户选择调用。调用时会传入以下环境变量:

变量 说明 必须
ISTORE_CONF_DIR 配置文件保存路径,例如/mnt/nvme/Configs
ISTORE_CACHE_DIR 缓存/临时文件保存路径,例如/mnt/nvme/Caches
ISTORE_PUBLIC_DIR 公共文件夹,例如/mnt/nvme/Public
ISTORE_DL_DIR 下载文件保存路径,例如/mnt/nvme/Public/Downloads
ISTORE_DONT_START 自动配置以后不启用插件,取值1或空

在线提交流程

以下操作都在github上进行

准备工作

  1. Fork 本项目,如果之前Fork过,那先删掉自己的项目重新Fork

修改元数据

  1. 切换到 main 分支
  2. 同步上游仓库:点击 Fetch upstream,再点击 Fetch and merge 即可,这一步如有疑问请参考官方文档
  3. 创建PR用的临时分支:切换到 main 分支,点击分支下拉菜单,在输入框输入新分支的名称(也就是不存在的分支名称),例如 add_app_jellyfin ,搜索结果会变成 Create branch: *** from 'main' ,点这个搜索结果,稍等会自动创建并切换到新分支
  4. 在新分支中进行更改,完成以后提交PR
  5. 等PR合并以后,可以在 branches 页面删除临时分支,也可以保留临时分支,但是不要再进行变更和PR