免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2152 | 回复: 0
打印 上一主题 下一主题

Contribute an OpenSolaris Package [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-04-05 22:15 |只看该作者 |倒序浏览

                今天我了解了一下贡献一个OpenSolaris Package的过程, 当前OpenSolaris IPS包分为四类:
  • http://pkg.opensolaris.org/release 主要的用户软件库
  • http://pkg.opensolaris.org/dev 两周更新一次的开发软件库
  • http://pkg.opensolaris.org/contrib 社区贡献的软件库
  • http://pkg.opensolaris.org/pending 社区贡献的软件库,所含的软件包还没被验证
我们要贡献的包得从pending软件库开始:
1. 我们需要浏览一下当前的所有的软件库, 确保你想要贡献的软件包还没有在现有的软件库中存在,然后发一封信到
sw-porters-discuss
告诉大家你要贡献这个包, 确保没有重复的工作
2. 用
Package Build Procedure
尝试创建自己的IPS包,并且确认包的名字和版本, 以及版权问题, 并且在你的OpenSolaris系统上测试自己做的软件包
3. 为你想要贡献的软件包写一份
SPEC file
, 并做好patch
4. 使用JDS Common Build Environment来测试写好的SPEC file, 制作想要贡献的软件包
5. 如果一切OKAY, 将SPEC file和patch打包, 发送到
sw-porters-discuss
6. Approval之后, 你的软件包将会被集成到/pending软件库里
7. 从/pending软件库安装贡献的软件包, 测试并报告任何问题
这里详细描述一下步骤3和步骤4, SPEC file其实是redhat RPM包的标准, 大家可以详细看看RPM SPEC的标准描述。 这里我打算贡献的软件包是pmtools, 关于SPEC file, 我把我写的贴出来, 这样对照上面的link和RPM SPEC的标准, 应该可以知道该如何写自己的SPEC file了
#
# Copyright (c) 2009 Aubrey Li
# This file and all modifications and additions to the pristine
# package are under the same license as the package itself.
Name:                pmtools
Summary:             ACPI power management utilities
Version:             20071116
License:          GPLv2
Source:              http://www.lesswatts.org/patches/linux_acpi/pmtools-%{version}.tar.gz
BuildRoot:           %{_tmppath}/%{name}-%{version}-build
Patch1:              pmtools-01-solaris-porting.diff
BuildRequires:       SUNWgcc
Requires:            SUNWxsvc
Requires:            SUNWcsl
Requires:            SUNWlibms
%description
This is a small collection of ACPI power management investigation tools.
%prep
%setup -q -n pmtools-%version
%patch1 -p1
%build
CC=gcc gmake
%install
rm -rf $RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT/usr/sbin
gmake INSTALL_ROOT=$RPM_BUILD_ROOT install
%clean
rm -rf $RPM_BUILD_ROOT
%files
%dir %attr (0755, root, sys) %{_prefix}
%dir %attr (0755, root, bin) %{_sbindir}
%defattr (-, root, bin)
%{_sbindir}/*
%changelog
*
* Mon Jan 19 2009 - Aubrey Li
- Initial spec
如何使用SPEC file呢? 可以用JDS CBE来创建自己的软件包。
aubrey@aubrey-usb:~/software/jds-cbe-1.6.2$ pfexec ./cbe-install
----snip----
Installation of  was successful.
CBE setup complete
Run
  . /opt/jdsbld/bin/env.sh
or
  source /opt/jdsbld/bin/env.csh
depending on your shell, to use this build environment.
Installation log saved in /var/sadm/install/logs/jds-cbe-1.6.2.install.log.2715
  • 创建build环境
aubrey@aubrey-usb:~/software/jds-cbe-1.6.2$ . /opt/jdsbld/bin/env.sh
JDS/Solaris CBE version 1.6.2 built on 2009-04-05 by aubrey@aubrey-usb
Unsetting ORBIT_SOCKETDIR
Unsetting GTK_RC_FILES
Unsetting WINDOWID
Unsetting DTSTARTIMS
Unsetting USER
Unsetting _AST_FEATURES
Unsetting GNOME_KEYRING_SOCKET
Unsetting USERNAME
Unsetting A__z
Unsetting DESKTOP_SESSION
Unsetting LC_MESSAGES
Unsetting GDM_XSERVER_LOCATION
Unsetting LANG
Unsetting GNOME_KEYRING_PID
Unsetting GDM_LANG
Unsetting GDMSESSION
Unsetting SESSIONTYPE
Unsetting GNOME_DESKTOP_SESSION_ID
Unsetting G_FILENAME_ENCODING
Unsetting XDG_DATA_DIRS
Unsetting GTK_IM_MODULE
Unsetting G_BROKEN_FILENAMES
Unsetting COLORTERM
Setting default C compiler CC=/opt/SUNWspro/bin/cc
Setting default C++ compiler CXX=/opt/SUNWspro/bin/CC
Setting 32-bit C compiler CC32=/opt/SUNWspro/bin/cc
Setting 32-bit C++ compiler CXX32=/opt/SUNWspro/bin/CC
Setting 64-bit C compiler CC64=/opt/SUNWspro/bin/cc
Setting 64-bit C++ compiler CXX64=/opt/SUNWspro/bin/CC
Setting LD=/opt/jdsbld/bin/ld-wrapper
Setting PATH=/opt/jdsbld/bin:/usr/ccs/bin:/usr/gnu/bin:/usr/bin:/usr/sbin:/bin:/usr/sfw/bin:/opt/SUNWspro/bin
  • 在home目录下创建packages和SOURCES文件夹, 并将patch文件放在这里边
aubrey@aubrey-usb:~/packages/SOURCES$ pwd
/export/home/aubrey/packages/SOURCES
aubrey@aubrey-usb:~/packages/SOURCES$ ls
pmtools-01-solaris-porting.diff
  • 最后一步, 创建软件包
aubrey@aubrey-usb:~/pmtools$ pkgtool build --download pmtools.spec
INFO: Copying %use'd or %include'd spec files to SPECS directory
INFO: Processing spec files
INFO: Finding sources
INFO: Downloading source http://www.lesswatts.org/patches/linux_acpi/pmtools-20071116.tar.gz
INFO: Running pkgbuild -ba [...] pmtools.spec (pmtools)
INFO: pmtools PASSED
INFO: Installing pmtools
Summary:
                         package |      status | details
---------------------------------+-------------+-------------------------------
                         pmtools |      PASSED |
               
               
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/41699/showart_1890802.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP