QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6559|回复: 2

Magic Linux的打包规范

[复制链接]
发表于 2008-1-28 10:23:59 | 显示全部楼层 |阅读模式
1、分包方式:magic的原则是尽量少分包,除非是为兼容,不然尽量简化依赖关系。减少包的数量。一般的程序只分主包和开发包即可,小程序的也可以只打主包。不过特殊情况,包括已经形成的分包方式不用更改。
2、打包环境:必须和magic当然的主要开发环境一致,这是必须的。
3、spec文件的规范:
     spec文件应当使用gb18030的编码,并有中文的信息描述。具体的以llk的spec为例,详细说明:
  1. %define ver 2.3    <-----------自定义宏要写在spec的开头

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

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

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

  21. %prep
  22. %setup -q -n %{name}_linux-%{version}


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

  26. %install
  27. make DESTDIR=$RPM_BUILD_ROOT install
  28. mkdir -p $RPM_BUILD_ROOT/usr/share/applications
  29. install -m 644 %{SOURCE1} $RPM_BUILD_ROOT/usr/share/applications/

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

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

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

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

  41. * Tue Feb 9 2006 KanKer <[email protected]>
  42. - update 2.3beta1

  43. * Sun Dec 11 2005 KanKer <[email protected]>
  44. - 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 系统环境/服务


以上是我想到的一些东西,可能还有不完善的地方,请大家讨论,另外,分组如果可以属于多个组的,可以任选一个。如果目前的不够,可以提出来,再加上。
发表于 2008-1-28 13:26:20 | 显示全部楼层
再加上包分类规范吧
回复

使用道具 举报

发表于 2008-1-28 18:34:23 | 显示全部楼层
BuildRoot
%clean
这两个部分有一点不同。
个人觉得 clean 的时候把 buildroot 和 builddir 一起删掉比较好,不然很占用空间的......

这个是我的一个典型:jasper


  1. # NOTE: packages that can use jasper:
  2. # ImageMagick
  3. # kdelibs
  4. # netpbm

  5. Name: jasper
  6. Summary: Implementation of the JPEG-2000 standard, Part 1
  7. Summary(zh_CN): JPEG-2000 标准,第 1 部分的实现
  8. Group: System Environment/Libraries
  9. Group(zh_CN): 系统环境/库
  10. Version: 1.900.1
  11. Release: 0.3mgc
  12. License: JasPer License Version 2.0
  13. URL: http://www.ece.uvic.ca/~mdadams/jasper/
  14. Source0: http://www.ece.uvic.ca/~mdadams/jasper/software/%{name}-%{version}.zip
  15. BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)

  16. BuildRequires: automake
  17. BuildRequires: libjpeg-devel
  18. # "freeglut-devel: Requires: libGL-devel libGLU-devel" (#179464)
  19. BuildRequires: freeglut-devel libGL-devel libGLU-devel

  20. %description
  21. This package contains an implementation of the image compression
  22. standard JPEG-2000, Part 1. It consists of tools for conversion to and
  23. from the JP2 and JPC formats.

  24. %description -l zh_CN
  25. 本软件包包含了 JPEG-2000 图像压缩标准,第 1 部分的实现。它包含了双向转换 JP2 和 JPC 格式的工具。

  26. %package devel
  27. Summary: JPEG-2000 library developer files
  28. Summary(zh_CN): JPEG-2000 库开发文件
  29. Group: Development/Libraries
  30. Group(zh_CN): 开发/库
  31. Requires: %{name} = %{version}-%{release}
  32. Requires: libjpeg-devel

  33. %description devel
  34. JPEG-2000 library developer files.

  35. %description devel -l zh_CN
  36. JPEG-2000 库开发文件。

  37. %prep
  38. %setup -q -n %{name}-%{version}

  39. %build

  40. %configure \
  41.   --enable-shared \
  42.   --enable-static

  43. %{__make} %{?_smp_mflags}

  44. %install
  45. %{__rm} -rf %{buildroot}
  46. %{__make} DESTDIR=%{buildroot} install

  47. # Unpackaged files
  48. %{__rm} -f doc/README
  49. %{__rm} -f %{buildroot}%{_libdir}/lib*.la

  50. %check
  51. %{__make} check

  52. %clean
  53. %{__rm} -rf %{buildroot} %{_builddir}/%{buildsubdir}

  54. %post -p /sbin/ldconfig

  55. %postun -p /sbin/ldconfig

  56. %files
  57. %defattr(-,root,root,-)
  58. %doc COPYRIGHT LICENSE NEWS README
  59. %{_bindir}/imgcmp
  60. %{_bindir}/jiv
  61. %{_bindir}/imginfo
  62. %{_bindir}/*jasper*
  63. %{_bindir}/tmrdemo
  64. %{_libdir}/lib*.so.*
  65. %{_mandir}/man1/*

  66. %files devel
  67. %defattr(-,root,root,-)
  68. %doc doc/*
  69. %{_includedir}/jasper/
  70. %{_libdir}/lib*.so
  71. %{_libdir}/*.a

  72. %changelog
  73. * Fri Nov 23 2007 Ni Hui <> - 1.900.1-0.3mgc
  74. - rebuilt
  75. - 恢复 /usr/bin/jiv

  76. * Sat Oct 20 2007 Ni Hui <> - 1.900.1-0.2mgc
  77. - rebuilt
  78. - 丢失文件 jiv (无用)

  79. * Wed Oct 3 2007 Ni Hui <> - 1.900.1-0.1mgc
  80. - first spec file for MagicLinux-2.1
  81. - 去除 GEO jasper 部分以及过时的相关 GL 补丁
复制代码

[ 本帖最后由 nihui 于 2008-1-28 18:36 编辑 ]
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-4-19 18:34 , Processed in 0.080251 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表