为了研究Fedora29内置的OpenSSL-1.1.1a版本
特地在虚拟机下搭建rpm打包环境

We don't encourage you to do this task as root user, to learn how to make you own rpmbuild environment, see Thomas's Tutorial: How to create a rpmbuild directory.

RPM version 4.14.2.1

sudo dnf install \'dnf-command(builddep)' \rpm-build
sudo dnf groupinstall "C Development Tools and Libraries"sudo dnf builddep openssldnf download --source openssl
# 下载回来源码包 openssl-1.1.1a-1.fc29.src.rpm
# 普通用户身份导入这个src.rpm包
rpm -ivh *.src.rpm
cd ~/rpmbuild

进入rpmbuild/SPECS目录,手动修改openssl.spec

选项-no-sm2 禁用了SM2椭圆曲线
选项-no-sm4 禁用了SM4对称加密算法

删除openssl.spec文件中的上述两个选项:

./Configure \--prefix=%{_prefix} --openssldir=%{_sysconfdir}/pki/tls ${sslflags} \--system-ciphers-file=%{_sysconfdir}/crypto-policies/back-ends/openssl.config \zlib enable-camellia enable-seed enable-rfc3779 enable-sctp \enable-cms enable-md2 enable-rc5 enable-ssl3 enable-ssl3-method \enable-weak-ssl-ciphers \no-mdc2 no-ec2m \shared  ${sslarch} $RPM_OPT_FLAGS '-DDEVRANDOM="\"/dev/urandom\""'

我曾尝试同时把--prefix=%{_prefix}修改成--prefix=/usr/local但发现RPM打包过程对BUILDROOT子目录内的文件位置不能随便改,手动修改prefix会引起后续步骤找不到文件

rpmbuild -ba ./SPECS/openssl.specrpmbuild执行(包括SM4)单元测试用例的时候会卡住,导致编译中断
不会生成rpm包
不过我们仍然可以输出编译成功的文件
进入子目录BUILDROOT/子目录里的usr/bin里的openssl和usr/lib所有的文件拷贝一份到系统目录/usr/local/bin/和/usr/local/lib里which openssl
如果显示/usr/local/bin/openssl表示我们已经成功
$ openssl enc -ciphers
Supported ciphers:
-aes-128-cbc               -aes-128-cfb               -aes-128-cfb1
-aes-128-cfb8              -aes-128-ctr               -aes-128-ecb              ····-sm4                       -sm4-cbc                   -sm4-cfb
-sm4-ctr                   -sm4-ecb                   -sm4-ofb

Fedora 29 rpmbuild 打包openssl 1.1.1a版本相关推荐

  1. fedora 安装Linux源码,如何在 Fedora 29/30 上安装 VS Code

    Visual Studio Code 简称 VS Code 是微软开发的一款跨平台的源代码编辑器. 它具有内置的调试支持,嵌入式 Git 控件,语法突出显示,代码完成,代码重构和代码片段. Visua ...

  2. Fedora 29 添加 惠普打印机 Smart Tank 531

    文章目录 环境 步骤 补充 环境 系统: Fedora 29 x64 打印机: HP Smart Tank 531 Wireless All in One 打印机WIFI 地址: 192.168.1. ...

  3. rpmbuild打包rpm

    一.rpmbuild及rpm rpm          rpm命令 是RPM软件包的管理工具.rpm原本是Red Hat Linux发行版专门用来管理Linux各项套件的程序,由于它遵循GPL规则且功 ...

  4. 打造 fedora 29 workstation 桌面环境

    文章目录 1 fedora 29 修改 root 密码 2 fedora 29 安装五笔 3 fedora 29 安装 chrome 4 fedora 29 查看分区文件系统, 挂载 windows ...

  5. Kali Linux发布2020.1a版本

    Kali Linux发布2020.1a版本 Kali Linux发布2020.1a版本.现在该版本暂时只能从cdimage.kali.org下载.该版本修复了2010.1不联网安装时,没有桌面的bug ...

  6. python打包加版本信息_使用pyi-set_version为PyInstaller打包出来的程序附加版本信息...

    本文将讲述如何使用 pyi-grab_version获取版本信息的模板文件,以及使用 pyi-set_version为打包好的程序附加版本信息. 当然了,在开始前,需要你已经安装好了 PyInstal ...

  7. 使用Box2D制作AS3游戏——2.1a版本——Hello World Box2D .

    本文版权归 csdn cunshuifengyun,转载请严格按照如下方式,于文章明显位置注明原文作者及出处,以示尊重!! 作者:cunshuifengyun 原文:http://blog.csdn. ...

  8. C#_打包发布变成一个绿色版本软件——Costura.Fody合并DLL和EXE

    C#_打包发布变成一个绿色版本软件--Costura.Fody合并DLL和EXE 前言:之前使用C#制作软件后使用Costura.Fody打包都挺顺利的,没有遇到什么麻烦,可是现在使用Costura. ...

  9. webpack对css文件打包:css-loader和style-loader版本过高问题

    webpack对css文件打包:css-loader和style-loader版本过高问题 问题描述 安装css-loader:npm install --save-dev css-loader和st ...

最新文章

  1. 张萍萍 计科高职13-1 201303014010 实践三结对项目
  2. 深入理解 Android Https
  3. HiKey960 开发板 android 编译
  4. asp 使用TreeView控件
  5. 【会议】2009-11-13
  6. Web中树形数据(层级关系数据)的实现—以行政区树为例
  7. Tomcat 指定jdk
  8. mysql隔离性与隔离级别
  9. round函数怎么使用python_python中round函数怎么用
  10. PD快充协议JD6606S资料
  11. SOLD2算法详解之2: 特征点检测,点NMS(CVPR 2021)
  12. ps cs6安装问题汇总
  13. 台式计算机读不到u盘怎么回事,u盘读不出来怎么办?Win7电脑无法识别设备如何解决?...
  14. 【正点原子MP157连载】 第十二章 呼吸灯实验-摘自【正点原子】【正点原子】STM32MP1嵌入式Linux驱动开发指南V1.7
  15. 高通骁龙665能不能升级鸿蒙系统,高通骁龙665性能好不好 高通骁龙665性能测试...
  16. Winows通过非445端口远程访问公网Samba
  17. Java开发工具排名,你知道几个?
  18. [读后感] 书名:追风筝的人
  19. 使用ACE admin实现无限添加菜单栏
  20. yarn安装依赖超时

热门文章

  1. android查看网页源码,流数据
  2. activiti流程消息事件触发messageEventReceived,MessageCatchingEvent 及消息启动流程
  3. linux 本地端口关,Linux查看端口使用状态、关闭端口方法
  4. python基础教程期末考试题库_PYTHON语言应用试题题目及答案,课程2020最新期末考试题库,章节测验答案...
  5. 机器人环境感知算法之鲁棒感知阶段
  6. ad18常用快捷键可以修改吗_常用发泡剂之聚氨酯发泡剂在冬季可以用吗?
  7. python如何打印txt文件_在Python中的.txt文件中打印特定行?
  8. 洛谷——P2084 进制转换
  9. 为什么tcp不采用停等协议_为什么 TCP 协议有粘包问题
  10. vue-cli+webpack在生成的项目中使用bootstrap的方法