MichaelBibby 发表于 2006-6-21 19:00:58

帮忙看看这个SPEC文件是否合格:fluxbox


Name:         fluxbox
Version:      1.0rc
Release:      1mgc

Summary:        Window Manager based on Blackbox

Group:          User Interface/Desktops
License:      MIT
URL:            http://fluxbox.sourceforge.net

Source0:      http://download.sourceforge.net/fluxbox/fluxbox-1.0rc.tar.bz2

BuildRoot:        %{_tmppath}/%{name}-%{version}-buildroot
BuildPrereq: imlib2-devel, zlib-devel, libXft-devel, fontconfig-devel

%description

Fluxbox is yet another windowmanager for X.It's based on the Blackbox 0.61.1
code. Fluxbox looks like blackbox and handles styles, colors, window placement
and similar thing exactly like blackbox (100% theme/style compatibility).So
what's the difference between fluxbox and blackbox then?The answer is: LOTS!

Have a look at the homepage for more info ;)

%prep
%setup -q

%build
%configure      --enable-nls \
                                --enable-imlib2

#make %{?_smp_mflags}

%install
rm -rf $RPM_BUILD_ROOT

make install DESTDIR=$RPM_BUILD_ROOT

# this is for Magic Linux.
mkdir -p $RPM_BUILD_ROOT%{_datadir}/xsessions/
#install -m 0755 -p %SOURCE3 $RPM_BUILD_ROOT%{_datadir}/xsessions/
#install -m 0755 -p %SOURCE4 $RPM_BUILD_ROOT%{_bindir}/fluxbox-xdg-menu

%clean
rm -rf $RPM_BUILD_ROOT

%files
%defattr(-,root,root,755)
%doc AUTHORS COPYING ChangeLog INSTALL NEWS README TODO
%{_bindir}/*
%{_mandir}/man1/*
%{_datadir}/%{name}

%changelog
* Wed Jun 21 2006 Michael Bibby <michaelbibby[AT]gmail.com>
1.0rc
- First spec file for Magic Linux.

MichaelBibby 发表于 2006-6-21 19:03:33

小弟第一次打包,很多细节不太懂。各位如果有什么资料可以推荐的,还请多帮忙。

这次的SPEC文件的问题是:
* 对于依赖的包不是非常清楚,只列出了几个。大家通常都是如何检查它的依赖包的?
* 没有指定安装路径。默认是/usr,但是我觉得放在'/usr/local'会更好一些(除了基本系统之外的软件,都安装到'/usr/local'底下)。
* 自己暂时没发现。

sejishikong 发表于 2006-6-21 20:54:28

依赖列出几个就行.
打rpm包的话,在magic,默认路径最好是/usr

haulm 发表于 2006-6-21 21:32:43

路径可以不用考虑,默认路径交给编译参数./configure \ 后面的定义,主要还是
%install
%post
%postun
%file

jiangtao9999 发表于 2006-6-21 21:41:11


%SOURCE3

????????

heyuqi 发表于 2006-6-21 21:46:06

这个帖子似乎应该发在这里,我把它移到这里,希望 MichaelBibby 兄弟不要介意。:P

KDE 发表于 2006-6-21 22:33:48

BuildRoot:   %{_tmppath}/%{name}-%{version}-buildroot
通常我们要加 %{release}
%{_tmppath}/%{name}-%{version}-%{release}-buildroot
构建根路径越冗长越安全。这是为了避免并行编译多个 rpm 时可能的相互覆盖。

BuildPrereq: imlib2-devel, zlib-devel, libXft-devel, fontconfig-devel
应该是 BuildRequires: 而不是 BuildPrereq: ,前者指编译软件过程中该软件自身依赖哪些包,后者指编译基本环境需要预先满足的基本条件,一般是一些特定命令,比如 spec 里的编译脚本用到了 perl 脚本,那么需要写作 BuildPrereq:/usr/bin/perl

任何官方发布的包均应该默认使用 /usr,/usr/local 是给用户自己从源码编译准备的空间,你可以利用spec 头部的 Prefix: %{_prefix} 参数允许用户安装 rpm 时将文件放到其它位置。%{_prefix} 宏一般是指 /usr。

#make %{?_smp_mflags}
不要跳过 make 而直接使用 make install,因为那样做有时并不可靠,就是说不一定make install 一定会包含 make 动作。况且这样做并没有利用并行编译参数 %{?_smp_mflags}


请仔细阅读 rpm 建包原理里的说明。一切均应该力图标准化。magic 2.0 里大部分包是 kanker 打的,一部分是我打的,其它人也有一些。这里面 magic 有一套自己的打包标准,抽空我会写出来。

MichaelBibby 发表于 2006-6-21 23:22:35

BuildRoot:   %{_tmppath}/%{name}-%{version}-buildroot
通常我们要加 %{release}
%{_tmppath}/%{name}-%{version}-%{release}-buildroot
构建根路径越冗长越安全。这是为了避免并行编译多个 rpm 时可能的相互覆盖。

BuildPrereq: imlib2-devel, zlib-devel, libXft-devel, fontconfig-devel
应该是 BuildRequires: 而不是 BuildPrereq: ,前者指编译软件过程中该软件自身依赖哪些包,后者指编译基本环境需要预先满足的基本条件,一般是一些特定命令,比如 spec 里的编译脚本用到了 perl 脚本,那么需要写作 BuildPrereq:/usr/bin/perl

任何官方发布的包均应该默认使用 /usr,/usr/local 是给用户自己从源码编译准备的空间,你可以利用spec 头部的 Prefix: %{_prefix} 参数允许用户安装 rpm 时将文件放到其它位置。%{_prefix} 宏一般是指 /usr。

#make %{?_smp_mflags}
不要跳过 make 而直接使用 make install,因为那样做有时并不可靠,就是说不一定make install 一定会包含 make 动作。况且这样做并没有利用并行编译参数 %{?_smp_mflags}


请仔细阅读 rpm 建包原理里的说明。一切均应该力图标准化。magic 2.0 里大部分包是 kanker 打的,一部分是我打的,其它人也有一些。这里面 magic 有一套自己的打包标准,抽空我会写出来。
恩,受教了。学会了一点。希望各位大哥多多指教。

PS:刚打好了wxPython-2.6.3.2的RPM包。已经用上了:)。这东西对学习wxPython是必须的,而且我还下好了电子书《wxPython in Action》及其书中的示例代码。暂时还不知道如何将电子书打包成RPM。
我现在把fluxbox的SPEC改改。

npcomet 发表于 2006-6-22 12:10:49

这里面 magic 有一套自己的打包标准,抽空我会写出来。

公开,大家一起努力。
页: [1]
查看完整版本: 帮忙看看这个SPEC文件是否合格:fluxbox