各位TC委员,专家好:
有个问题提请大家讨论。
我们的软件中有不少软件是需要bootstrap的。比如说,bazel的构建依赖bazel,haskell的构建依赖haskell等等。
当前openEuler在引入新的软件仓时,是不引入预构建的二进制的。为了解决bootstrap的问题,我们可能需要 先引入相应软件包的二进制,来满足构建依赖。
我希望从技术管理角度对这类场景放松要求,但是又不能让二进制软件随意进入社区。因此考虑想创建一个独立 的SIG,并且今后所有直接二进制打包的repo归属这个独立的SIG管理。
请大家看有没有更好的执行方法?
谢谢
Shinwell Technical Committee openEuler Community
On 2020/6/20 18:02, Huxinwei wrote:
各位TC委员,专家好:
有个问题提请大家讨论。
我们的软件中有不少软件是需要bootstrap的。比如说,bazel的构建依赖bazel,haskell的构建依赖haskell等等。
当前openEuler在引入新的软件仓时,是不引入预构建的二进制的。为了解决bootstrap的问题,我们可能需要
先引入相应软件包的二进制,来满足构建依赖。
我没完全理解这个意思,是不是说自己依赖自己,或者循环依赖的这种情况? 如果是这种情况的话,是不是在第一次构建的时候在构建环境上部署一下二进制就行了, 第一次构建之后,就可以换成社区自己构建的了,这样社区就不用直接引入二进制包了。
还是说除了这种情况,还有别的需要二进制的情况?
我希望从技术管理角度对这类场景放松要求,但是又不能让二进制软件随意进入社区。因此考虑想创建一个独立
的SIG,并且今后所有直接二进制打包的repo归属这个独立的SIG管理。
请大家看有没有更好的执行方法?
谢谢
Shinwell
Technical Committee
openEuler Community
Tc mailing list -- tc@openeuler.org To unsubscribe send an email to tc-leave@openeuler.org
openEuler的构建是在封闭的自动环境里,没法做“第一次构建的时候在构建环境上部署一下二进制”这样定制化的操作。 而且也不好定义“第一次”。
所以看起来或者这个软件的源码里就要带相关的二进制,或者这个软件依赖一个额外的二进制包。
From: Xiexiuqi Sent: Saturday, June 20, 2020 6:25 PM To: Huxinwei huxinwei@huawei.com Cc: tc@openeuler.org Subject: Re: [Tc] 是否需要为二进制软件包创建一个独立的SIG?
On 2020/6/20 18:02, Huxinwei wrote: 各位TC委员,专家好:
有个问题提请大家讨论。
我们的软件中有不少软件是需要bootstrap的。比如说,bazel的构建依赖bazel,haskell的构建依赖haskell等等。
当前openEuler在引入新的软件仓时,是不引入预构建的二进制的。为了解决bootstrap的问题,我们可能需要 先引入相应软件包的二进制,来满足构建依赖。
我没完全理解这个意思,是不是说自己依赖自己,或者循环依赖的这种情况? 如果是这种情况的话,是不是在第一次构建的时候在构建环境上部署一下二进制就行了, 第一次构建之后,就可以换成社区自己构建的了,这样社区就不用直接引入二进制包了。
还是说除了这种情况,还有别的需要二进制的情况?
我希望从技术管理角度对这类场景放松要求,但是又不能让二进制软件随意进入社区。因此考虑想创建一个独立 的SIG,并且今后所有直接二进制打包的repo归属这个独立的SIG管理。
请大家看有没有更好的执行方法?
谢谢
Shinwell Technical Committee openEuler Community
_______________________________________________
Tc mailing list -- tc@openeuler.orgmailto:tc@openeuler.org
To unsubscribe send an email to tc-leave@openeuler.orgmailto:tc-leave@openeuler.org
或许可以考虑建立一个 bootstrap 的 SIG 组。
软件包之所以会自己依赖自己,是通过实现自己编译自己来达到降低对外部的依赖,典型的是编译器。无论是编译器、语言类软件包还是一个发行版的构建,都有 bootstrap 的阶段。
从 0 达到自编译构建基本上都会有预置编译环境、第一次编译生成二进制、迭代编译自身、移除预置编译环境。通过两到三次迭代达到没有预置编译环境的状态,也就是依赖自己。
参考:https://en.wikipedia.org/wiki/Bootstrapping
On 22 Jun 2020, at 9:10 AM, Huxinwei huxinwei@huawei.com wrote:
openEuler的构建是在封闭的自动环境里,没法做“第一次构建的时候在构建环境上部署一下二进制”这样定制化的操作。 而且也不好定义“第一次”。
所以看起来或者这个软件的源码里就要带相关的二进制,或者这个软件依赖一个额外的二进制包。
From: Xiexiuqi Sent: Saturday, June 20, 2020 6:25 PM To: Huxinwei huxinwei@huawei.com Cc: tc@openeuler.org Subject: Re: [Tc] 是否需要为二进制软件包创建一个独立的SIG?
On 2020/6/20 18:02, Huxinwei wrote: 各位TC委员,专家好:
有个问题提请大家讨论。
我们的软件中有不少软件是需要bootstrap的。比如说,bazel的构建依赖bazel,haskell的构建依赖haskell等等。
当前openEuler在引入新的软件仓时,是不引入预构建的二进制的。为了解决bootstrap的问题,我们可能需要 先引入相应软件包的二进制,来满足构建依赖。
我没完全理解这个意思,是不是说自己依赖自己,或者循环依赖的这种情况? 如果是这种情况的话,是不是在第一次构建的时候在构建环境上部署一下二进制就行了, 第一次构建之后,就可以换成社区自己构建的了,这样社区就不用直接引入二进制包了。
还是说除了这种情况,还有别的需要二进制的情况?
我希望从技术管理角度对这类场景放松要求,但是又不能让二进制软件随意进入社区。因此考虑想创建一个独立 的SIG,并且今后所有直接二进制打包的repo归属这个独立的SIG管理。
请大家看有没有更好的执行方法?
谢谢
Shinwell Technical Committee openEuler Community
Tc mailing list -- tc@openeuler.org mailto:tc@openeuler.org To unsubscribe send an email to tc-leave@openeuler.org mailto:tc-leave@openeuler.org_______________________________________________ Tc mailing list -- tc@openeuler.org To unsubscribe send an email to tc-leave@openeuler.org
我觉得可能一个专门的SIG组可能更合理。不过对于bootstrap,我们需要明确一下工作的范围和输出件,因为bootstrap通常是一个制作的动作序列,如果我们写清楚怎么搞,二进制软件是不是可以让用户自己从相关的网站下。单纯放二进制我觉得可能并不能解决问题,最好还是一整套的脚本,工具,文档等配合,目的是工程师能够通过这些工具,依照文档来把bootstrap搞起来。
在 2020-06-22 11:16:50,"Jianmin Wang" jianmin@iscas.ac.cn 写道:
或许可以考虑建立一个 bootstrap 的 SIG 组。
软件包之所以会自己依赖自己,是通过实现自己编译自己来达到降低对外部的依赖,典型的是编译器。无论是编译器、语言类软件包还是一个发行版的构建,都有 bootstrap 的阶段。
从 0 达到自编译构建基本上都会有预置编译环境、第一次编译生成二进制、迭代编译自身、移除预置编译环境。通过两到三次迭代达到没有预置编译环境的状态,也就是依赖自己。
参考:https://en.wikipedia.org/wiki/Bootstrapping
On 22 Jun 2020, at 9:10 AM, Huxinwei huxinwei@huawei.com wrote:
openEuler的构建是在封闭的自动环境里,没法做“第一次构建的时候在构建环境上部署一下二进制”这样定制化的操作。 而且也不好定义“第一次”。
所以看起来或者这个软件的源码里就要带相关的二进制,或者这个软件依赖一个额外的二进制包。
From: Xiexiuqi Sent: Saturday, June 20, 2020 6:25 PM To: Huxinwei huxinwei@huawei.com Cc: tc@openeuler.org Subject: Re: [Tc] 是否需要为二进制软件包创建一个独立的SIG?
On 2020/6/20 18:02, Huxinwei wrote: 各位TC委员,专家好:
有个问题提请大家讨论。
我们的软件中有不少软件是需要bootstrap的。比如说,bazel的构建依赖bazel,haskell的构建依赖haskell等等。
当前openEuler在引入新的软件仓时,是不引入预构建的二进制的。为了解决bootstrap的问题,我们可能需要 先引入相应软件包的二进制,来满足构建依赖。
我没完全理解这个意思,是不是说自己依赖自己,或者循环依赖的这种情况? 如果是这种情况的话,是不是在第一次构建的时候在构建环境上部署一下二进制就行了, 第一次构建之后,就可以换成社区自己构建的了,这样社区就不用直接引入二进制包了。
还是说除了这种情况,还有别的需要二进制的情况?
我希望从技术管理角度对这类场景放松要求,但是又不能让二进制软件随意进入社区。因此考虑想创建一个独立 的SIG,并且今后所有直接二进制打包的repo归属这个独立的SIG管理。
请大家看有没有更好的执行方法?
谢谢
Shinwell Technical Committee openEuler Community
_______________________________________________ Tc mailing list -- tc@openeuler.org To unsubscribe send an email to tc-leave@openeuler.org _______________________________________________ Tc mailing list -- tc@openeuler.org To unsubscribe send an email to tc-leave@openeuler.org
除了这种情况,java类应用的构建现在也存在这种情况,java编译后的字节码也可以理解为二进制吧。在openeuler上构建二进制免不了依赖第三方jar,通用做法是直接配置maven源,从maven源下载依赖的maven插件和jar。其他编译型语言如果依赖不从源码构建是不是也有类型情况。
在 2020-06-20 18:24:44,"Xie XiuQi" xiexiuqi@huawei.com 写道:
On 2020/6/20 18:02, Huxinwei wrote:
各位TC委员,专家好:
有个问题提请大家讨论。
我们的软件中有不少软件是需要bootstrap的。比如说,bazel的构建依赖bazel,haskell的构建依赖haskell等等。
当前openEuler在引入新的软件仓时,是不引入预构建的二进制的。为了解决bootstrap的问题,我们可能需要
先引入相应软件包的二进制,来满足构建依赖。
我没完全理解这个意思,是不是说自己依赖自己,或者循环依赖的这种情况? 如果是这种情况的话,是不是在第一次构建的时候在构建环境上部署一下二进制就行了, 第一次构建之后,就可以换成社区自己构建的了,这样社区就不用直接引入二进制包了。
还是说除了这种情况,还有别的需要二进制的情况?
我希望从技术管理角度对这类场景放松要求,但是又不能让二进制软件随意进入社区。因此考虑想创建一个独立
的SIG,并且今后所有直接二进制打包的repo归属这个独立的SIG管理。
请大家看有没有更好的执行方法?
谢谢
Shinwell
Technical Committee
openEuler Community
_______________________________________________ Tc mailing list -- tc@openeuler.org To unsubscribe send an email to tc-leave@openeuler.org