QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3171|回复: 5

老大们帮我看看,这个SPEC

[复制链接]
发表于 2005-12-6 19:28:43 | 显示全部楼层 |阅读模式
我打算为 fvwm 打包,这是在别人的 SPEC 的基础上修改的,这样写对吗?

#%define prefix %{_prefix}
%define prefix /usr

%define ver 2.4.19  %define old_ver 2.4.19
%define rel 1mgc  %define old_rel 1
%define c_p --without-gnome --without-rplay-library --sysconfdir=/etc  %define old_c_p --disable-multibyte --sysconfdir=/etc
%define m_p CFLAGS="-O2"  %define old_m_p CFLAGS="-O2"

# Different distributions expect sources to be in different places;
# the following solves this problem, but makes it harder to reuse .src.rpm
%define _sourcedir /tmp

Summary:   F(?) Virtual Window Manager
Name:      fvwm
Version:   %{ver}
Release:   %{rel}
Copyright: GPL
Group:     X11/Window Managers
Source:    %{name}-%{version}.tar.gz
URL:       http://www.fvwm.org/
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot
Packager:  heyuqi<my e-mail>
Autoreq:   1

Distribution: Magic Linux

Requires:  libXpm.so.4
#Requires:  xpm >= 3.4g
Requires:  perl >= 5.002

# GTK, Imlib, stroke

# RedHat should stop using name "fvwm" to refer to fvwm1 package.
Provides:  fvwm, fvwm2

Docdir:    %{prefix}/share/doc

%description
FVWM is a powerful ICCCM-compliant multiple virtual desktop window manager
for the X Window System.

This 2.4 version includes new features like colorsets, ICCCM2 and GNOME
compliance, session management, improvements in all modules, several
new modules, revised menu code, stroke support and much more.

%description -l fr
FVWM est un gestionnaire de fen阾res puissant et extr阭ement configurable
pour le syst鑝e X Window.

La version 2.4 contient un grand nombre de nouvelles fonctionnalit閟.
Voici quelques exemples:
gestion des ensembles de couleurs (colorset),
respect de l'ICCCM2 et du protocole GNOME,
support pour les gestionnaires de sessions,
am閘ioration des modules ainsi que de nouveaux modules,
le code pour les menus a 閠
 楼主| 发表于 2005-12-7 23:24:27 | 显示全部楼层
为 libstroke打了包,老大们帮我看看这样做行不行

spec 如下:

%define prefix /usr

Name:                libstroke
Version:        0.5.1
Release:        1

Summary:        A Stroke Translation Library
Copyright:        GPL
Group:                System Environment/Libraries
URL:                http://www.etla.net/libstroke
Packager:        heyuqi <my email>

Source:                %{name}-%{version}.tar.gz

BuildRoot:        %{_tmppath}/%{name}-%{version}-%{release}-root
BuildRequires:        gtk+-devel

%description
LibStroke is a stroke interface library.  Strokes are motions of the
mouse that can be interpreted by a program as a command.  Strokes are
used extensively in CAD programs.

%package devel
Summary:        Development environment for %{name}
Group:                Development/Libraries
Requires:        %{name}-devel = %{version}-%{release}

%description devel
This package contains development files required to build
%name-based software.

%prep
%setup

%configure
CFLAGS="$RPM_OPT_FLAGS" \
CXXFLAGS="$RPM_OPT_FLAGS" \
./configure --prefix=%{prefix}

%build
make

%install
rm -rf $RPM_BUILD_ROOT
make prefix=%{prefix} PREFIX=%{prefix} DESTDIR=$RPM_BUILD_ROOT install

%clean
rm -rf $RPM_BUILD_ROOT
rm -rf $RPM_BUILD_DIR/%{name}-%{version}

%files
%{_libdir}/*.so.*
%doc AUTHORS ChangeLog COPYRIGHT CREDITS NEWS README* TODO doc/standard_strokes.*

%files devel
%_libdir/*.so
%_includedir/*
%_datadir/aclocal/*


%defattr(-,root,root)
%{prefix}/*

%changelog
* Wed Dec 07 2005 heyuqi <my email>
- Initial revision.

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复

使用道具 举报

发表于 2005-12-8 23:36:44 | 显示全部楼层
建议楼主先了解一下基本的宏定义,比如通常用标准的 %{_prefix} 宏,它代表 /usr,你就不用改掉了
#%define prefix %{_prefix}
%define prefix /usr
另外
%{prefix}/bin/*
%{prefix}/libexec/*
%{prefix}/man/*/*
%{prefix}/share/*
这些位置都有宏定义的,尽量不要这样写,第二个spec这里会好点,另外ml的mandir 定义在/usr/share/man 而不是 /usr/man,这个挺奇怪的呵呵
%configure
CFLAGS="$RPM_OPT_FLAGS" \
CXXFLAGS="$RPM_OPT_FLAGS" \
./configure --prefix=%{prefix}

%configure是标准宏定义
下面那些是非标准的写法,其实意义是相同的,也就是你重复了,
其他地方我没仔细看,如果你真想学习打包,你好好研究一下/usr/lib/rpm/macros
还有一般打包的spec 中还有 %post 和 %postun 是你安装和解载后执行的,
多看看别人的spec
回复

使用道具 举报

 楼主| 发表于 2005-12-9 13:45:15 | 显示全部楼层
好的,我好好看看。

还有 %post  和 %postun 里面一般应该写些什么,我一直很疑惑,不知道怎么写才算满足要求。我现在试着参照别的发行版已有的 spec
回复

使用道具 举报

发表于 2005-12-9 14:15:34 | 显示全部楼层
%post 和 %postun

不一定的,很多,比如你想软链接东西,或者ldconfig,又比如gnome中修改添加gconf的信息,升级scrollkeeper信息,这是不一定的,有些不需要写的
回复

使用道具 举报

发表于 2005-12-11 09:34:37 | 显示全部楼层
这是我第一次制做rpm包,编译的是mysql5的,问题是如果我在编译包里加入群或用户,如useradd mysql,如果系统中该用户或组存在,该spec文档%install段加入useradd mysql进行编译打包会出错中断,在制做rpm包时会何该编译过程相当于进行了一次正常打包编译和安装么。

%define debug_package %{nil}
Name:         mysql
Version:        5.0.16
Release:        25
Summary:        database
Group:          Applications/Multimedia
License:        GPL
URL:            http://www.mysql.com/
Source:        mysql-5.0.16.tar.gz
%description
install mysql 5 encode gbk
%prep
%setup -q
%Build
./configure --with-charset=gbk --with-collation=gbk_chinese_ci --with-extra-charsets=gb2312,big5,utf8,binary,ascii --prefix=/usr/local/mysql
make
%install
make install
cp support-files/my-medium.cnf /etc/my.cnf
cd /usr/local/mysql
bin/mysql_install_db --user=mysql
chown -R root  .
chown -R mysql var
chgrp -R mysql .
echo "/usr/local/mysql/bin/mysqld_safe --user=mysql &">>/etc/rc.d/rc.local
%clean
%post
%files
%defattr(-,root,root)
/usr

%changelog
回复

使用道具 举报

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

本版积分规则

GMT+8, 2024-3-29 16:18 , Processed in 0.085071 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

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