微认证 openEuler社区开源贡献实践

文章目录

    • 1. 开源与开源社区
    • 2. openEuler 社区概述
    • 3.参与openEuler社区贡献
    • 4.openEuler软件包开发
      • Linux软件管理——源码编译

1. 开源与开源社区

Richard Matthew Stallman,1983年9月推出GNU项目,并发起自由软件运动(free software movement或free/opensource software movement,简称FSM或FOSSM),推广用户有使用、复制、研究、修改和分发软件等权利。同时开创了Copyleft的概念,它使用著作权法的原则来保护使用修改和分发自由软件的权利,并且是描述这些术语的自由软件许可证的主要作者。最为人所称道的是GPL(最广泛使用的自由软件协议)

1985年10月成立自由软件基金会(FreeSoftware Foundation FSF),致力于推广自由软件。

开放源代码促进会(Open Source Initiative,缩写:OSl)于1998年2月创建,旨在推动开源软件发展,首次正式提出开源软件(open source software)的概念:

一种源代码可以任意获取的计算机软件,这种软件的著作权持有人在软件协议的规定之下保留一部分权利并允许用户学习、修改以及以任何目的间任何人分发该软件。开源协议通常符台开放源代码的定义的要求。

License是游戏规则,是开源软件许可证。在开源软件代码仓/包中,通常在COPYING,LICENSE,NOTICE,COPYRIGHT,AUTHOR,README说明其采用的开源许可证。

开源软件使用遵从义务:按照开源软件软件许可证规定开源软件使用者需要覆行的义务

开源使用声明义务:在产品发布时,随产品附上一份文档Open Source Software Note在该文档中写明产品所有使用的开源软件及其版权和许可证信息,并附上免责声明。

代码对外开源义务:按照开源许可证要求,将一定范围内的代码对外开源,开源范围视具体许可证的要求和使用方式而定。

修改声明义务:做出对修改的开源软件就修改时间,修改的代码以及修改过的文件做出具体的声明。

  1. Apache License 2.0
  2. BSD 3-Clause “New” or “Revised” license
  3. BSD 2-Clause “Simplified” or “FreeBSD” license
  4. GNU General Public License (GPL)
  5. GNU Library or “Lesser” General Public License (LGPL)
  6. MIT license
  7. Mozilla Public License 2.0
  8. Common Development and Distribution License
  9. Eclipse Public License version 2.0
  10. Mulan Permissive Software License v2(MulanPSL-2.0)
    https://opensource.org/licenses

GPL(Gnu Public License)
GPL许可证的核心含义是,允许任何人观看、修改,并散播程序软件里的原始程序码,条件是如果你要发布修改后的版本就要连源代码一起公布。

GPL V2许可说明
允许各种链接,但被链接的整个产品需要开源
允许修改,但被修改的部分及整个产品均需要开源通过pipes,sockets的命令行参数与GPL软件进行通讯,不会导致私有软件被传染仅原则性声明专利应免费许可,无详细规定

LGPL V2许可说明
允许各种链接,动态链接无开源义务,静态链接需要开放与之链接私有软件的.0文件与makefile允许修改再链接到私有软件,但是个性增加的功能实现不能依赖私有软件的数据功能允许不受限制的使用头文件中数值参数,数据结构布局,存取,小宏,内联参数,十行以内的模板仅原则性声明专利应免费许可,无详细规定

木兰宽松许可证(MulanPSL v2)
https://license.coscl.org.cn/MulanPsL2/index.htm!
2020年2月14日,“木兰宽松许可证”第2版(MulanPSLv2)经过严格审批,正式通过开源促进会(OSI)认证,被批准为国际类别开源许可证(International licenses)。意味着其正式具有国际通用性,可被任一国际开源基金会或开源社区支持采用,并为任一开源项目提供服务。
与众多开源协议相比,Mulan PSL在其它协议的基础上进行了以下优化:

  • 许可证内容以中英文双语表述,中英文版本具有同等法律效力,方便更多的开源参与者阅读使用,简化了中国使用者进行法律解释时的复杂度。
  • 明确授予用户永久性、全球性、免费的、非独占的、不可撤销的版权和专利许可,并针对目前专利联盟存在的互诉漏洞问题,明确规定禁止“贡献者”或“关联实体”直接或间接地(通过代理、专利被许可人或受让人)进行专利诉讼或其它维权行动,否则终止专利授权。
  • 明确不提供对“贡献者”的商品名称、商标、服务标志等的商标许可,保护“贡献者”的切身利益。
  • 木兰协议经技术专家和法律专家共同修订,在明确合同双方行为约束的前提下尽可能地精简条款、优化表述,降低产生法律纠纷的风险。

1991年芬兰大学生Linus Torvalds在GNU通用公共许可证下发布了最初是为自己创作的Linux操作系统内核,最初这只是他的一项兴趣爱好。随后,这项兴趣爱好便逐步演变成了拥有最大用户群的操作系统。

如今,它不仅是服务器上最常用的操作系统也广泛应用在嵌入式系统上,如手机、平板电脑、路由器、电视、电子游戏机等。只要遵循GNU 通用公共许可证(GPL),任何个人和机构都可以自由地使用Linux的所有底层源代码,也可以自由地修改和再发布。并逐渐发展成为世界上最为活跃的开源基金会Linux Foundation,吸引了来自世界各地的超过500家公司的超过235k开发者参与。

2. openEuler 社区概述

openEuler脱胎于EulerOS,EulerOS是华为公司自2010年起研发使用的服务器操作系统,Linux发行版之一,名字来源于著名数学家莱昂哈德·欧拉(Leonhard Euler);2019年9月,EulerOS正式开源,命名为openEuler2021年9月25日,openEuler全新发布,升级为统一的面向数字基础设施的开源操作系统,通过一套操作系统架构,南向支持多样性设备,北向覆盖全场景应用,横向对接鸿蒙通过能力共享实现生态互通。2021年11月openEuler正式捐献至开放原子开源基金会

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

社区版本号按照交付年份月份命名。

长期支持版本:
发布周期为2年,提供4年社区支持。

社区创新版本:
每隔6个月发布一个社区创新版本,提供6个月社区支持。

在这里插入图片描述

在这里插入图片描述

SlG 是Special Interest Group 的缩写openEuler 社区的开发活动按照不同的SiG 来组织,以便于更好的管理和改善工作流程。SIG 组均是开放的,欢迎任何人来参与。

https://www.openeulerorg/zh/sig/sig-list/

3.参与openEuler社区贡献

角色职责范围要求
Contributor项目的贡献者签署CLA并产生社区贡献
Committer审核其他成员的贡献SIG的积极贡献者,经验丰富,愿意投入精力参与到审核工作
Maintainer项目Owner经验丰富,富有责任心、出色的技术能力和管理能力
组织职责范围
技术委员会(Technical Committee)负责社区技术决策和技术资源的协调。当期TC委员(含主席)经过扩选,为19人,任期一年。
安全委员会(Security Committee)接收和响应openEuler产品安全问题报告、提供社区安全指导,开展安全治理等活动提升社区产品的安全性,为openEuler用户提供最安全的产品和开发环境
Release Management社区协调各SIG的Maintainer、QA等各个团队,完成openEuler社区版本的发布工作。

4.openEuler软件包开发

在这里插入图片描述

Linux软件管理——源码编译

Tarball 文件:将软件的所有源码文件以 tar 打包,然后再压缩(通常是gzip),所以 tarbal 文件一般的扩展名为 *.tar.gz 或是简写为 *tgz。不过近来由于 bzip2 与 xz 的压缩率较佳,因此它对应的后缀名为 .tar.bz2..tar.XZ 。
所以,tarball 是一个软件包,将它解压之后,里面的文件通常会有

  • 源代码文件
  • 检测程序(可能是 configure 或 config)
  • 本软件的简易说明与安装说明(INSTALL或 README)
  • 其中重要的是 INSTALL或 README 文件,通常只要能参考这两个文件,Tarball 软件的安装是很简单的

虽然使用源码进行软件编译可以具有定制化的设置,但是对于 Linuxdistribution 的发布商来说,则有软件管理不易的问题,毕竟不是每个人都会进行源码编译
如果能预先在相同的硬件与操作系统上编译好才发布的话,就可以让相同的distribution 具有完全一致的软件版本了,再加上简易的安装、移除、管理等机制的话,对于软件管理就容易多了
RPM 与 YUM/DNF 就是实现这样的目标

RPM

简单易用,以软件包为中心: RPM以软件包为单位进行操作,而不是操作单个文件。·软件包的可升级性: 一旦软件包使用rpm安装后,可以使用rpm对该软件包进行升级。·解析软件包依赖:RPM软件包中保存了所有该软件包需要的依赖。·查询功能:RPM软件管理器可以用来查询所有本机已通过RPM进行安装的软件包。验证: RPM可以对RPM软件包进行验证,确保软件包可信

name-version-release.architecture.rpm
kernel-smp-2.6.32.9-3.x86 64.rpmrootfiles-7.2-1.noarch.rpm

在这里插入图片描述

RPMBUild Spec:Preamble

Namepkg的名称,需要与Spec文件名一致
Version软件源代码的版本
Release这个软件包被制作成rpm的次数,从1开始递增
Summary软件包的简要描述
License软件所使用的(开源)协议
URL软件的项目网站,方便用户获得更多内容
Source0~xx项目源代码压缩包的存储路径或URL,可以依次指定多个Source,如source0,source1,source2 …
Patch0~xx构建过程中需要用到的patch文件,可依次指定多个patch,如patch1,patch2patch3 …
BuildArch构建架构:x86 64,aarch64,power64等,若采用跨平台语言(e.g.纯python)则可以指定noarch
BuildRequires软件构建过程中所需要的依赖
Requires软件运行过程中所需要的依赖
ExcludeArch软件不能运行的平台

RPMBuild Spec:Body

%description软件包的简要描述
%prep执行软件build之前的准备工作,如解压Source文件,打patch等操作
%buildBuild软件包的执行步骤
%install安装软件包的执行步骤
%check检查步骤,主要用于测试
%files软件包所产生的文件列表
%changelogSpec的修改记录

基本格式:rpmbuild [options] [spec文档|tarball包(或者压缩包-以.gz或.xz或.bz2结尾的)|源码包]

options有下面的几种选择

1.-bp :只执行spec的%pre段(解开源码包并打补丁,即只做准备)

2.-bc :执行spec的%pre和%build 段(准备并编译)

3.-bi :执行spec中%pre,%build与%install(准备,编译并安装)

4.-bl :检查spec中的%file段(查看文件是否齐全)

5.-ba :建立源码与二进制包(常用):即编译后做成*.rpm和*.src.rpm

6.-bb :只建立二进制包(常用):即编译后做成*.rpm*

*7.-bs :只建立源码包:即只做成 *.src.rpm

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/347256.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

多维时序 | Matlab实现RIME-TCN-Multihead-Attention霜冰算法优化时间卷积网络结合多头注意力机制多变量时间序列预测

多维时序 | Matlab实现RIME-TCN-Multihead-Attention霜冰算法优化时间卷积网络结合多头注意力机制多变量时间序列预测 目录 多维时序 | Matlab实现RIME-TCN-Multihead-Attention霜冰算法优化时间卷积网络结合多头注意力机制多变量时间序列预测效果一览基本介绍程序设计参考资料…

Dify学习笔记-应用发布(四)

1、发布为公开 Web 站点 使用 Dify 创建 AI 应用的一个好处在于,你可以在几分钟内就发布一个可供用户使用的 Web 应用,该应用将根据你的 Prompt 编排工作。 如果你使用的是自部署的开源版,该应用将运行在你的服务器上 如果你使用的是云服务&…

3.确认弹窗(ConfirmPopup)

愿你出走半生,归来仍是少年! 环境:.NET 7 在开发中,最常用的弹窗之一表示确认弹窗,为了减少重复的开发工作,所以需要基于Popup进行封装。 1.布局 分为标题、确认内容、按钮三个区域,都是可供调整的。 &l…

java复习篇 数据结构:链表第二节 哨兵

目录 单向链表哨兵 初始 头插 思路 代码 尾插 思路 遍历 遍历验证头插 尾插代码 尾插测试 get 思路 代码 测试 insert 思路 代码 测试 remove 移除头结点 提问 移除指定位置 测试 单向链表哨兵 单向链表里面有一个特殊的节点称为哨兵节点,…

MacOS 无法ping 通 github.com 解决方案

ping github.com 会显示请求超时: PING github.com (192.30.253.112): 56 data bytes Request timeout for icmp_seq 0 Request timeout for icmp_seq 1 Request timeout for icmp_seq 2 Request timeout for icmp_seq 3 Request timeout for icmp_seq 4 Request …

一文了解Ceph原理以及常见ceph指令

一、Ceph介绍 什么是分布式存储? 与集中式存储相反,分布式存储通常采用存储单元集群的形式。并且具有在集群节点之间进行数据同步和协调的机制。其目的是为了通过服务器解决大规模,高并发情况下的Web访问问题。 Ceph是一个统一的、分布式的存…

如何利用H5页面引导关注公众号-数灵通

随着流量获取成本的增加,许多企业开始寻找新的引流渠道来储存流量。H5小活动成为了一种有效的引流方式,并且在客户之间传递,形成了裂变效应。企业开始将目光转向H5网站,希望通过引导客户关注公众号来提升品牌影响力。 为了实现这一…

143基于matlab的2D平面桁架有限元分析

基于matlab的2D平面桁架有限元分析,可以改变材料参数,输出平面结构外形,各桁架应力,位移及作用力。可查看节点力,程序已调通,可直接运行。 143 matlab 平面桁架 有限元分析 桁架应力 (xiaohongshu.com)

温湿度传感器原理解析,温湿度传感器的应用场景有哪些?

作为常见的检测装置,现在已经有大大小小几十种传感器出现在我们的日常生活中。作为能够测量环境温度和湿度的传感器,温湿度传感器正是最常见的传感器之一,作为温湿度监测系统的一部分,被广泛应用于智慧机房、智慧楼宇、智慧农业等…

重构改善既有代码的设计-学习(三):重新组织数据

1、拆分变量(Split Variable) 有些变量用于保存一段冗长代码的运算结果,以便稍后使用。这种变量应该只被赋值一次。 如果它们被赋值超过一次,就意味它们在函数中承担了一个以上的责任。如果变量承担多个责任,它就应该被…

外贸干货!社媒营销养号全攻略:10个必须知道的养号技巧

大家都知道,养号已经成为任何希望在WhatsApp、Facebook、TikTok等社交媒体平台上取得成功的跨境电商和营销人员的必备技能。在本文中,我们将深入探讨如何高效地进行养号,以及如何在海外社交媒体批量养号的过程中避免封号,确保你的…

Jenkins全局工具配置

目录 Jenkins全局工具全局工具配置Settings 文件配置Maven配置JDK配置Git配置 Jenkins全局工具 我们在安装了Jenkins之后,就可以开始使用Jenkins来进行一些自动化构建发布工作,但是开始之前我们还需要进行全局工具的配置,Jenkins全局工具配置…

如何使用 NFTScan API 检索 NFT 合约地址下 Transactions 数据

对于大多数人而言,获取某 NFT 合约地址下的全量交易记录是十分有挑战性的,不仅涉及到对区块链技术的深入了解以及使用相应的工具和资源,还需要处理区块链上的智能合约和交易数据,并将其与外部数据源进行整合分析。通常&#xff0c…

【UAT阶段】测试计划分享

前面我有分享UAT阶段注意事项,今天跟大家分享UAT测试计划包含哪些内容: 希望该计划能给大家在实际项目中有所帮助;

求职应聘找工作,你一定会遇到的人才测评

信息时代,越来越多的公司在招聘时引入了人才测评机制。企业和单位希望通过人才测评在广大的应聘者中,找到符合自己要求的人才。虽然很多应聘者能力和简历都比较出众,但却在最开始的人才测评中吃了亏。有的公司很看重人才测评结果。测评就相当…

WinSCP下载安装并实现远程SSH本地服务器上传文件

文章目录 1. 简介2. 软件下载安装:3. SSH链接服务器4. WinSCP使用公网TCP地址链接本地服务器5. WinSCP使用固定公网TCP地址访问服务器 1. 简介 ​ Winscp是一个支持SSH(Secure SHell)的可视化SCP(Secure Copy)文件传输软件,它的主要功能是在本地与远程计…

2017年认证杯SPSSPRO杯数学建模A题(第二阶段)安全的后视镜全过程文档及程序

2017年认证杯SPSSPRO杯数学建模 A题 安全的后视镜 原题再现: 汽车后视镜的视野对行车安全非常重要。一般来说,汽车的后视镜需要有良好的视野范围,以便驾驶员能够全面地了解车后方的道路情况。同时,后视镜也要使图像的畸变尽可能…

leetcode2859-计算K置位下标对应元素的和

题目链接 2859. 计算 K 置位下标对应元素的和 - 力扣(LeetCode) 解题思路 枚举nums的每一个下标i;统计i的二进制数的1的个数;累加满足bit_count(i) k的nums[i]; 难点,如何统计二进制中1的个数? 例题 …

postgresql12表膨胀解决(不锁表)

查看所有数据库占用磁盘空间 SELECTpg_database.datname AS "数据库名称",pg_size_pretty(pg_database_size(pg_database.datname)) AS "磁盘占用空间" FROMpg_database;发现有个数据库占用空间过大 查询库中所有表占用空间 SELECTtable_name,pg_size_…

固态硬盘优化设置

目录 前言: 关闭Windows Search 禁用系统保护(不建议) 不建议禁用系统保护原因 关闭碎片整理 提升固态硬盘速度 开启TRIM 合理使用固态硬盘的容量 正确关机 关闭开机自启 前言: 电脑配备固态硬盘就能一劳永逸吗&#…