plv8 rpm包创建
以下是从一个三方rpm构建,获取到的rpm 包制作spec,主要是学习下pg 扩展rpm 包的打包
rpm src 包
安装源码rpm
rpm -ivh plv8-2.1.0-6.fc28.src.rpm
查看源码rpm 信息
我使用centos 7
- 位置
/root/rpmbuild
- 目录结构
├── BUILD
├── BUILDROOT
├── RPMS
│ └── x86_64
├── SOURCES
│ ├── plv8-2.1.0-make-bug-1517657.patch
│ ├── plv8-2.1.0-make-respects-CXXFLAGS.patch
│ ├── plv8-2.1.0-make-test.patch
│ └── plv8-2.1.0.tar.gz
├── SPECS
│ └── plv8.spec
└── SRPMS
- spec
%global sname plv8
%bcond_without check
%{?!v8_arches:%global v8_arches %arm %ix86 x86_64}
Summary: V8 Engine Javascript Procedural Language add-on for PostgreSQL
Name: %{sname}
Version: 2.1.0
Release: 6%{?dist}
License: BSD
Source0: https://github.com/%{sname}/%{sname}/archive/v%{version}/%{name}-%{version}.tar.gz
# Please self-document the patches inside ('git am' format for backports)
# -----------------------------------------------------------------------
# Ensure build system respects Fedora's CXXFLAGS for hardening.
Patch0: plv8-2.1.0-make-respects-CXXFLAGS.patch
# Support RPM_HACK_LDFLAGS to work-around rhzb#1517657 below.
Patch1: plv8-2.1.0-make-bug-1517657.patch
# Support for 'make test' in %%check section.
Patch2: plv8-2.1.0-make-test.patch
URL: https://github.com/plv8/plv8
BuildRequires: postgresql-devel
BuildRequires: v8-devel
BuildRequires: gcc-c++
BuildRequires: perl-interpreter
%if %{with check}
BuildRequires: postgresql-server
%endif
Requires: postgresql-server
%{?postgresql_module_requires}
Requires: v8
ExclusiveArch: %v8_arches
%description
plv8 is a shared library that provides a PostgreSQL procedural language
powered by V8 JavaScript Engine. With this program you can write in JavaScript
your function that is callable from SQL.
%prep
%autosetup -p1
%build
# Setup CFLAGS, etc. by hacked %%configure
%define _configure :
%configure
# rhbz#1517657
ln -s %{_libdir}/libv8_libplatform.so.? libv8_libplatform.so
export LDFLAGS="$LDFLAGS -L$PWD"
%make_build RPM_HACK_LDFLAGS="-L$PWD"
%if %{with check}
%check
make test || {
find -name '*.diffs' -exec cat {} +
# Known to fail on armv7hl architecture, reported in pull request #247.
%ifnarch %arm
false
%endif
}
%endif
%install
%make_install
%files
%license COPYRIGHT
%doc README.md Changes doc/%{sname}.md
%{_libdir}/pgsql/%{sname}.so
%dir %{_datadir}/pgsql/extension
%{_datadir}/pgsql/extension/plcoffee--%{version}.sql
%{_datadir}/pgsql/extension/plcoffee.control
%{_datadir}/pgsql/extension/plls--%{version}.sql
%{_datadir}/pgsql/extension/plls.control
%{_datadir}/pgsql/extension/%{sname}--%{version}.sql
%{_datadir}/pgsql/extension/%{sname}.control
%changelog
* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2.1.0-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Tue Dec 19 2017 Pavel Raiskup <praiskup@redhat.com> - 2.1.0-5
- review requirement - in-spec docs for patches (rhbz#1036130)
* Tue Dec 19 2017 Pavel Raiskup <praiskup@redhat.com> - 2.1.0-4
- review fixes - per Robert-André Mauchin notes - better github source url,
drop Group tag, better format of patches (rhbz#1036130)
- ignore test failure on %%arm (reported upstream in PR#247)
* Mon Dec 18 2017 Pavel Raiskup <praiskup@redhat.com> - 2.1.0-3
- enable testsuite
* Sat Dec 16 2017 Pavel Raiskup <praiskup@redhat.com> - 2.1.0-2
- fixes per pre-review by Robert-André Mauchin (rhbz#1036130)
- require proper postgresql-server version
- hack for missing libv8_libplatform.so in v8-devel (rhbz#1517657)
* Fri Dec 15 2017 Pavel Raiskup <praiskup@redhat.com> - 2.1.0-1
- rebase to 2.1.0
- cleanup spec, fix {cxx,ld}flags
* Tue Nov 10 2015 Pavel Kajaba <pkajaba@redhat.com> 1.4.4-1
- Made changes to work under Fedora repos
* Wed Jul 9 2014 Devrim Gündüz <devrim@gunduz.org> 1.4.2-1
- Update to 1.4.2
* Thu Dec 12 2013 Devrim Gündüz <devrim@gunduz.org> 1.4.1-1
- Initial spec file, per RH #1036130, after doing modifications
to suit community RPM layout. Original work is by David
Wheeler and Mikko Tiihonen
参考资料
https://fedora.pkgs.org/29/fedora-x86_64/plv8-2.1.0-6.fc28.x86_64.rpm.html
plv8 rpm包创建的更多相关文章
- linux查看rpm包创建的所有目录和文件
有不少时候,我们需要查看某个rpm创建的所有目录和文件,出于了解程序结构或者其他目的,但是对于这个rpm包我们又不怎么熟悉,这个时候可以通过rpm -ql rpm名称查看. 但是rpm名称有可能又忘了 ...
- RPM包的制作
RPM包的制作 前言 按照其软件包的格式来划分,常见的Linux发行版主要可以分为两类,类ReadHat系列和类Debian系列,这两类系统分别提供了自己的软件包管理系统和相应的工具. 类RedHat ...
- 定制化rpm包及本地yum仓库搭建
为方便本地yum的管理,一般都是在公司局域网内搭建本地yum仓库,实现公司内部快速安装常用软件. 步骤如下: 1.搭建要实现本地yum管理的软件,测试该软件搭建成功与否: 2.定制rpm包及其相关依赖 ...
- 插入光盘,创建挂载点,挂载设备,安装rpm包,升级rpm包,卸载rpm包,查询rpm包是否安装,查询rpm包信息、安装位置,查询系统文件名属于哪个安装包
插入光盘: 创建挂载点: 创建挂载点. 挂载设备:或者mount /dev/sr0 /mnt/cdrom 安装rpm包: [root@localhost Packages]# rpm -ivh mys ...
- linux 下载rpm包到本地,createrepo:创建本地YUM源
如何下载rpm包到本地 设置yum安装时,保留rpm包. 1.编辑 /etc/yum.conf 将keepcache的值设置为1; 这样就可以将yum安装时的rpm包保存在 /var/cache/yu ...
- rpm 子包创建学习
rpm 在打包的时候,可以创建子包,这样可以清晰的进行软件包的拆分,以下是结合官方文档学习 的一个实践 预备条件 需要安装rpmdevtools spec 文件 内容 Name: foo Versio ...
- 解决安装rpm包依赖关系的烦恼 - yum工具介绍及本地源配置方法
版权声明:本文发布于http://www.cnblogs.com/yumiko/,版权由Yumiko_sunny所有,欢迎转载.转载时,请在文章明显位置注明原文链接.若在未经作者同意的情况下,将本文内 ...
- nginx-1.8.0 rpm包制作
1.安装rpm-build # yum install rpm-build 2.创建制作RPM包目录 # cat /root/.rpmmacros %_topdir /root/rpmbuild %_ ...
- 【CentOS】安装RPM包或者源码包
一.rpm (是Redheat Package Manager的简称) 如果光驱中还有系统安装盘的话, 1.先挂载光驱, mount /dev/cdrom /mnt/ 2.cd /mnt/ 3.cd ...
随机推荐
- tomcat启动项目报404错误
1.请求的时候报404错误,而且我的请求API地址是/account/sendSmsCode,从后台获取到的竟然变成了/account/account/sendSmsCode. 2.后来发现是 ...
- Mybatis成为Java互联网时代首选持久框架的原因
持久层可以将业务数据存储到磁盘,具备长期存储能力,只要磁盘不损坏(大部分的重要数据都会有相关的备份机制),在断电或者其他情况下,重新开启系统仍然可以读取这些数据.一般执行持久任务的都是数据库系统.持久 ...
- Ubuntu apache安装,配置,卸载
阿里云服务器等记得到控制台开启防火墙 安装 sudo apt-get update sudo apt-get install apache2 配置 apache2 默认的几个配置文件 /etc/apa ...
- [转帖]银河麒麟Kydroid 2.0全新发布:原生支持海量安卓APP
银河麒麟Kydroid 2.0全新发布:原生支持海量安卓APP https://news.cnblogs.com/n/652299/将手机操作系统 转移到 桌面 跟chromebook 类似的策略吧 ...
- 【生活现场】从打牌到map-reduce工作原理解析(转)
原文:http://www.sohu.com/a/287135829_818692 小史是一个非科班的程序员,虽然学的是电子专业,但是通过自己的努力成功通过了面试,现在要开始迎接新生活了. 对小史面试 ...
- [世预赛] 中国vs菲律宾,第一场考验,国足力争三连胜,比分预测:3:0, 2:0,4:1
7比0大胜关岛,中国国家男子足球队在冲击2022卡塔尔世界杯的征途上收获两连胜,北京时间10月15日20点,中国男足将奔赴巴科洛德,客场挑战菲律宾男足,本场比赛也是中国男足在本次世预赛四十强赛阶段的第 ...
- 基于Custom-metrics-apiserver实现Kubernetes的HPA(内含踩坑)
前言 这里要说一下Prometheus的检控指标从哪里来,它有3个渠道: 主机监控,也就是部署了Node Exporter组件的主机,它以DaemonSet或者系统进程的形式运行,Prometheus ...
- nginx 反向代理时丢失端口的解决方案(转)
今天,配置nginx反向代理时遇到一个问题,当设置nginx监听80端口时转发请求没有问题.但一旦设置为监听其他端口,就一直跳转不正常:如,访问欢迎页面时应该是重定向到登录页面,在这个重定向的过程中端 ...
- uni-app项目记录
1.如何定义一个全局属性 在App.vue 文件中,以 global.属性名= XXX; 定义 在其他页面就以 global.属性名来调用 或者在min.js 中使用 Vue.prototype 挂载 ...
- Spring cloud简单学习总结
微服务简介 一.spring boot和spring cloud 的关系 spring boot来写各个拆分出来的微服务,spring cloud把各个微服务联系起来,比如各个微服务通过eurke找 ...