打印

Magic Linux的打包规范

Magic Linux的打包规范

1、分包方式:magic的原则是尽量少分包,除非是为兼容,不然尽量简化依赖关系。减少包的数量。一般的程序只分主包和开发包即可,小程序的也可以只打主包。不过特殊情况,包括已经形成的分包方式不用更改。
2、打包环境:必须和magic当然的主要开发环境一致,这是必须的。
3、spec文件的规范:
     spec文件应当使用gb18030的编码,并有中文的信息描述。具体的以llk的spec为例,详细说明:
复制内容到剪贴板
代码:
%define ver 2.3    <-----------自定义宏要写在spec的开头

Summary: Lian Lian Kan for Linux
Summary(zh_CN): Linux下的连连看 [font color=red]<------ 中文描述,也可以写成zh_CN.GB18030,下同。[/font]
Name: llk
Version: %{ver}
Release: 0.beta1.2mgc <------ release号一般写1mgc/2mgc这种,如果是beta/alpha/rc等测试版,尽量不要把beta等字样写在包名里,而是在realease号上写成0.betax.xmgc这种
License: GPL <------ 这里注意,有部分老的spec或其它发行版本也可以写成CopyRight,但Mgc统一为License
URL: http://llk-linux.sourceforge.net
Group: Amusements/Games
Group(zh_CN): 娱乐/游戏 <------分组的中文描述,具体规范见后
BuildRoot: %{_tmppath}/%{name}-%{ver}-%{release}-buildroot
Source0:%{name}_linux-%{ver}beta1.tar.gz
Source1:llk_linux.desktop
Prefix: %{_prefix}
Requires: glib2,gtk2
Packager: KanKer<kanker@163.com>

%description
Lian Lian Kan for Linux. It is an arcade game.

%description -l zh_CN
Linux下的连连看。它是一个街机游戏。 <----中文描述,加上上面的一共是三处,如果一个spec对应多个包,每个包都有三处。

%prep
%setup -q -n %{name}_linux-%{version}


%Build
%configure
%{__make} %{?_smp_mflags} <-----如果不支持smp编译,可以将去掉%{?_smp_mflags}

%install
make DESTDIR=$RPM_BUILD_ROOT install
mkdir -p $RPM_BUILD_ROOT/usr/share/applications
install -m 644 %{SOURCE1} $RPM_BUILD_ROOT/usr/share/applications/

magic_rpm_clean.sh <-----请在%install段里加上这名,如果有%find_lang,加在%find_lang之前

%clean
rm -rf $RPM_BUILD_ROOT <------ 这里也可以采用下面nihui的写法,另外,最好先判断下是不是根目录。

%files
%defattr(-,root,root)
%{_bindir}
%{_datadir}
%exclude /usr/*/debug*  <-----尽量避免这样的写法,尤其是复杂的包。简单的包可以使用。

%changelog
* Mon Jan 28 2008 Liu Di <liudidi@gmail.com> - 2.3-0.beta1.2mgc <----changlog的格式应该如左,每个changlog之间应该有一空行,可以使用中文的更新描述,也可以用英文
- 更新spec

* Tue Feb 9 2006 KanKer <kanker@163.com>
- update 2.3beta1

* Sun Dec 11 2005 KanKer <kanker@163.com>
- first spec
4、分组规范:前面是英文,后面是对应的中文。
Amusements/Games   娱乐/游戏
Applications/Internet 应用程序/互联网
Applications/Publishing 应用程序/出版
Applications/Multimedia 应用程序/多媒体
Applications/Tools 应用程序/工具
Applications/Engineering 应用程序/工程
Applications/Archiving 应用程序/归档
Applications/Databases 应用程序/数据库
Applications/File 应用程序/文件
Applications/Text 应用程序/文本
Applications/Emulators 应用程序/模拟器
Applications/Productivity 应用程序/生产力
Applications/System 应用程序/系统
Applications/Editors 应用程序/编辑器
Applications/Communications 应用程序/通讯
Development/Tools 开发/工具
Development/Libraries 开发/库
Development/System 开发/系统
Development/Languages 开发/语言
Development/Debuggers 开发/调试器
Documentation 文档
User Interface/X 用户界面/X
User Interface/Desktops 用户界面/桌面
System Environment/Kernel 系统环境/内核
System Environment/Base 系统环境/基本
System Environment/Shells 系统环境/外壳
System Environment/Libraries 系统环境/库
System Environment/Daemons 系统环境/服务


以上是我想到的一些东西,可能还有不完善的地方,请大家讨论,另外,分组如果可以属于多个组的,可以任选一个。如果目前的不够,可以提出来,再加上。

TOP