Coder Social home page Coder Social logo

openwrt-app-meta's Introduction

OpenWRT应用程序元数据

目录结构

  • applications
    • app-meta-*
      • Makefile - 描述文件,参考下文约定
      • logo.png - 图标文件,目前只支持png
  • 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_cortex-a53
  6. PKG_VERSION:= 版本号,尽量跟主包保持一致
  7. PKG_RELEASE:= 元数据修正版本,必须是数字,可以使用 123 或者日期如 20240314。在版本号 PKG_VERSION 未变更的情况下可以通过提升 PKG_RELEASE 来产生更新。
  8. META_WEBSITE:= 官网链接(注意如果链接包含#,需要转义成\#)
  9. META_TUTORIAL:= 教程链接(注意如果链接包含#,需要转义成\#)

国际化

  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

在线提交流程

以下操作都在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

openwrt-app-meta's People

Contributors

1163167506 avatar 666luyong avatar beginner-go avatar carseason avatar ionewu avatar jannson avatar jjm2473 avatar ks-bao avatar leesonaa avatar siriling avatar starvpn avatar trombonist852 avatar weiqt avatar xiangfeidexiaohuo avatar ygas avatar zhaoyangguang avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.