|
本帖最后由 401626436 于 2020-12-1 23:56 编辑
写得这么正规居然不行
- #
- # This is free software, licensed under the GNU General Public License v2.
- # See /LICENSE for more information.
- #
- include $(TOPDIR)/rules.mk
- PKG_NAME:=baidupcs-web
- PKG_VERSION:=3.7.0
- PKG_RELEASE:=1
- PKG_SOURCE_PROTO:=git
- PKG_SOURCE_URL:=https://github.com/liuzhuoling2011/BaiduPCS-Go.git
- PKG_SOURCE_VERSION:=cbc3e9e932d5c7a2b2302e4cd1b102f6f56fec44
- PKG_LICENSE:=GPL-2.0
- PKG_LICENSE_FILES:=LICENSE.txt
- PKG_BUILD_DEPENDS:=golang/host
- PKG_BUILD_PARALLEL:=1
- PKG_USE_MIPS16:=0
- GO_PKG:=github.com/liuzhuoling2011/BaiduPCS-Go
- GO_PKG_LDFLAGS:=-s -w -o BaiduPCS-Go
- GO_PKG_LDFLAGS_X:=main.Version=$(PKG_VERSION)
- include $(INCLUDE_DIR)/package.mk
- include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk
- define Package/baidupcs-web
- SECTION:=net
- CATEGORY:=Network
- TITLE:=BaiduPCS-Web is a web controller for BaiduPCS-Go
- URL:=https://github.com/liuzhuoling2011/BaiduPCS-Go.git
- DEPENDS:=$(GO_ARCH_DEPENDS)
- endef
- define Package/baidupcs-web/description
- BaiduPCS-Web is a web controller for BaiduPCS-Go
- endef
- define Build/Compile
- $(eval GO_PKG_BUILD_PKG:=$(GO_PKG))
- $(call GoPackage/Build/Compile)
- $(STAGING_DIR_HOST)/bin/upx --lzma --best $(GO_PKG_BUILD_BIN_DIR)/BaiduPCS-Go
- endef
- define Package/baidupcs-web/install
- $(INSTALL_DIR) $(1)/usr/bin
- $(INSTALL_BIN) $(GO_PKG_BUILD_BIN_DIR)/BaiduPCS-Go $(1)/usr/bin/baidupcs-web
- endef
- $(eval $(call GoBinPackage,baidupcs-web))
- $(eval $(call BuildPackage,baidupcs-web))
复制代码 还是歪门邪道的写法管用(shell脚本搬迁大法)
测试的过程中发现链接静态库之后UPX压缩后不能运行(那能不能先压缩后链接呢?!的确!)
1.其中先用SDK的GO环境编译得到二进制程序(忘了10多M)
2.UPX压缩缩小体积(3.3M)
3.静态链接库合并(12.8M)
未UPX压缩直接链接的20多M
乌班图编译它就可以,但安装到openwrt它就会提示缺少两个库 libc.so.5和libpthread.so.1
https://github.com/liuzhuoling2011/BaiduPCS-Go/blob/master/build.sh
有一个打包静态资源的命令
rice -i ./internal/pcsweb append --exec "$output/$1/$2"
rice究竟是什么?各种搜索引擎都查不到结果 sudo apt-get install rice 不存在这个包
反倒是 pip3 install rice 有结果但装完运行rice 还是提示没有这个命令
这究竟是为什么呢?!既然别人都写进去了,应该不是无的放矢吧!
(下载编译好的是不能够进行upx压缩的不然就运行报错了,还有就是换换这恒古不变的画面)
几经研究之下从他的仓库文字里跳到了另一个大佬的仓库,在这里我知道了rice是怎么回事
但是在编译测试的过程中发现openwrt的rice不能链接静态库(可能是环境变量的原因吧!泄漏到了编译机环境,发现在用户目录
/home/用户名/go/bin/rice 原来生成的东西漏出来了)
既然不行那就走曲线!
- #
- # This is free software, licensed under the GNU General Public License v2.
- # See /LICENSE for more information.
- #
- include $(TOPDIR)/rules.mk
- PKG_NAME:=baidupcs-web
- PKG_VERSION:=3.7.0
- PKG_RELEASE:=1
- PKG_SOURCE_PROTO:=git
- PKG_SOURCE_URL:=https://github.com/liuzhuoling2011/BaiduPCS-Go.git
- PKG_SOURCE_VERSION:=cbc3e9e932d5c7a2b2302e4cd1b102f6f56fec44
- PKG_LICENSE:=GPL-2.0
- PKG_LICENSE_FILES:=LICENSE.txt
- PKG_BUILD_DEPENDS:=golang/host
- PKG_BUILD_PARALLEL:=1
- PKG_USE_MIPS16:=0
- GO_PKG:=github.com/liuzhuoling2011/BaiduPCS-Go
- GO_PKG_LDFLAGS:=-w -s
- GO_PKG_LDFLAGS_X:=main.Version=$(PKG_VERSION)
- include $(INCLUDE_DIR)/package.mk
- include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk
- define Package/baidupcs-web
- SECTION:=net
- CATEGORY:=Network
- TITLE:=BaiduPCS-Web is a web controller for BaiduPCS-Go
- URL:=https://github.com/liuzhuoling2011/BaiduPCS-Go.git
- DEPENDS:=$(GO_ARCH_DEPENDS)
- endef
- define Package/baidupcs-web/description
- BaiduPCS-Web is a web controller for BaiduPCS-Go
- endef
- PKG_BIN:=$(GO_PKG_BUILD_BIN_DIR)/baidupcs-web
- PKG_ROUTE:=`cd && pwd`
- define Build/Compile
- ( \
- $(call GoPackage/Build/Compile) ; \
- pushd $(PKG_BUILD_DIR) ; \
- export CGO_ENABLED=0 ; \
- go build -ldflags "-X $(GO_PKG_LDFLAGS_X) $(GO_PKG_LDFLAGS)" -o $(PKG_BIN) ; \
- $(STAGING_DIR_HOST)/bin/upx --lzma --best "$(PKG_BIN)" ; \
- go get -u -v github.com/GeertJohan/go.rice ; \
- go get -u -v github.com/GeertJohan/go.rice/rice ; \
- $(PKG_ROUTE)/go/bin/rice -i ./internal/pcsweb append --exec "$(PKG_BIN)" ; \
- popd ; \
- )
- endef
- define Package/baidupcs-web/install
- $(call GoPackage/Package/Install/Bin,$(1))
- endef
- $(eval $(call GoBinPackage,baidupcs-web))
- $(eval $(call BuildPackage,baidupcs-web))
复制代码 修改背景:
1.包目录建立 src/internal/pcsweb/dist/img/
2.准备一张 1920x1080 的图片 改名为 login-bg.c64d8255.jpg 放入img下
修改标题:
1.包目录建立 patches
2.进入https://github.com/liuzhuoling2011/BaiduPCS-Go.git的源码目录 internal/pcsweb/dist/index.html
3.patches 建立目录a 将index.html 原文件复制进去
4.复制目录a为目录b 命令: cp -R a b
5.修改目录b里的index.html 找到<title>baidu-pcs-web</title>修改baidu-pcs-web为你想要的名称即可
6.生成patch 命令:diff -upr a b>00-index.patch
7.删除 a和b目录
8.可以编译了
最后再研究go程序的编译发现,确实是因为原作者删库导致的不能编译
第3种编译方式(也是最接近openwrt的原生编译方式,仍需研究)
- #
- # This is free software, licensed under the GNU General Public License v2.
- # See /LICENSE for more information.
- #
- include $(TOPDIR)/rules.mk
- PKG_NAME:=baidupcs-web
- PKG_VERSION:=3.7.0
- PKG_RELEASE:=1
- PKG_SOURCE_PROTO:=git
- PKG_SOURCE_URL:=https://github.com/liuzhuoling2011/BaiduPCS-Go.git
- PKG_SOURCE_VERSION:=cbc3e9e932d5c7a2b2302e4cd1b102f6f56fec44
- PKG_LICENSE:=GPL-2.0
- PKG_LICENSE_FILES:=LICENSE.txt
- PKG_BUILD_DEPENDS:=golang/host
- PKG_BUILD_PARALLEL:=1
- PKG_USE_MIPS16:=0
- GO_PKG:=github.com/liuzhuoling2011/BaiduPCS-Go
- GO_PKG_LDFLAGS:=-w -s
- GO_PKG_LDFLAGS_X:=main.Version=$(PKG_VERSION)
- include $(INCLUDE_DIR)/package.mk
- include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk
- define Package/baidupcs-web
- SECTION:=net
- CATEGORY:=Network
- TITLE:=BaiduPCS-Web is a web controller for BaiduPCS-Go
- URL:=https://github.com/liuzhuoling2011/BaiduPCS-Go.git
- DEPENDS:=$(GO_ARCH_DEPENDS)
- endef
- define Package/baidupcs-web/description
- BaiduPCS-Web is a web controller for BaiduPCS-Go
- endef
- USER_PATH:=`cd && pwd`
- define Build/Compile
- ( \
- $(call GoPackage/Build/Compile) ; \
- rm -rf $(GO_PKG_BUILD_BIN_DIR)/AndroidNDKBuild ; \
- $(STAGING_DIR_HOST)/bin/upx --lzma --best $(GO_PKG_BUILD_BIN_DIR)/* ; \
- pushd $(PKG_BUILD_DIR) ; \
- go get -u -v github.com/GeertJohan/go.rice ; \
- go get -u -v github.com/GeertJohan/go.rice/rice ; \
- $(USER_PATH)/go/bin/rice -i ./internal/pcsweb append --exec $(GO_PKG_BUILD_BIN_DIR)/* ; \
- popd ; \
- )
- endef
- define Package/baidupcs-web/install
- $(call GoPackage/Package/Install/Bin,$(1))
- endef
- $(eval $(call GoBinPackage,baidupcs-web))
- $(eval $(call BuildPackage,baidupcs-web))
复制代码
将原作者的仓库地址替换成备份的这位大佬的仓库地址 并生成patch
git clone https://github.com/liuzhuoling2011/BaiduPCS-Go.git
cd BaiduPCS-Go
sed -i 's/github.com\/iikira\/BaiduPCS-Go/github.com\/liuzhuoling2011\/BaiduPCS-Go/g' $(grep -rl BaiduPCS-Go)
git diff >00-modifyurl.patch
放到源码目录下的patches下就可以了,正常选中编译并保证与所连站点的网络畅通
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|