Template Spec Files
		    Материал из ROSA Wiki
		    
		    
		
		Spec файл для сборки программ используя GNU Autotools
Summary:	foo
Name:		foo	
Version:	1.0
Release:	1
License:	foo
Group:		foo
Url:		foo
Source0:	%{name}-%{version}.tar.bz2
%description
foo.
%files -f %{name}.lang
#------------------------------------------------------------------
%prep
%setup -q
%build
%configure2_5x
%make
%install
%makeinstall_std
%find_lang %{name}
Spec файл для сборки программ используя CMake
Summary:	foo
Name:		foo	
Version:	1.0
Release:	1
License:	foo
Group:		foo
Url:		foo
Source0:	%{name}-%{version}.tar.bz2
BuildRequires:  cmake
%description
foo.
%files -f %{name}.lang
#------------------------------------------------------------------
%prep
%setup -q
%build
%cmake
%make
%install
%makeinstall_std -C build
%find_lang %{name}
Spec файл для программ написанных в Qt4 и сборки используя cmake
Summary:	foo
Name:		foo	
Version:	1.0
Release:	1
License:	foo
Group:		foo
Url:		foo
Source0:	%{name}-%{version}.tar.bz2
BuildRequires:  cmake
BuildRequires:  qt4-devel
%description
foo.
%files -f %{name}.lang
#------------------------------------------------------------------
%prep
%setup -q
%build
%cmake_qt4
%make
%install
%makeinstall_std -C build
%find_lang %{name}
Spec файл для программ написанных в Qt5 и сборки используя cmake
Summary:	foo
Name:		foo	
Version:	1.0
Release:	1
License:	foo
Group:		foo
Url:		foo
Source0:	%{name}-%{version}.tar.bz2
BuildRequires:  cmake
BuildRequires:  qt5-devel
%description
foo.
%files -f %{name}.lang
#------------------------------------------------------------------
%prep
%setup -q
%build
%cmake_qt5
%make
%install
%makeinstall_std -C build
%find_lang %{name}
Spec файл для сборки программ используя Perl/Makefile.PL
%define upstream_name    foo
%define upstream_version 1.0
Summary:	foo
Name:           perl-%{upstream_name}
Version:        %perl_convert_version %{upstream_version}
Release:        1
License:	foo
Group:		foo
Url:		foo
Source0:	%{upstream_name}-%{upstream_version}.tar.bz2
BuildRequires:  perl-devel
%description
foo.
%files
#------------------------------------------------------------------
%prep
%setup -qn %{upstream_name}-%{upstream_version}
%build
perl Makefile.PL INSTALLDIRS=vendor
%make
%check
%make test
%install
%makeinstall_std
Spec файл для сборки программ используя Perl/Build.PL
%define upstream_name    foo
%define upstream_version 1.0
Summary:	foo
Name:           perl-%{upstream_name}
Version:        %perl_convert_version %{upstream_version}
Release:        1
License:	foo
Group:		foo
Url:		foo
Source0:	%{upstream_name}-%{upstream_version}.tar.bz2
BuildRequires:  perl-devel
BuildRequires:  perl(Module::Build)
%description
foo.
%files
#------------------------------------------------------------------
%prep
%setup -qn %{upstream_name}-%{upstream_version}
%build
perl Build.PL installdirs=vendor
./Build CFLAGS="%{optflags}"
%check
./Build test
%install
./Build install destdir=%{buildroot}
Spec файд для Python модулей
%define module	mymodule
Summary: 	Example module
Name: 	 	python-%{module}
Version: 	1.0
Release: 	1
License:	Apache License
Group:		Development/Python
Url:		http://mypage.org/mymodule
Source0:        %{module}-%{version}.tar.gz
BuildRequires:	pkgconfig(python)
%description
Example Python module.
%files -f FILELIST
%doc *.txt
#------------------------------------------------------------------
%prep
%setup -q
%install
PYTHONDONTWRITEBYTECODE=1  python setup.py install --root=%{buildroot} --record=FILELIST
# For safety - avoid "file listed twice" error
sed -i 's/.*egg-info$//' FILELIST
Spec файл для библиотек
%define major 1
%define libname %mklibname %{name} %{major}
%define devname %mklibname %{name} -d
# Usually we don't need to build static library
# But let's add it to spec template anyway
%define sdevname %mklibname %{name} -d -s
Summary:	foo
Name:		foo	
Version:	1.0
Release:	1
License:	foo
Group:		foo
Url:		foo
Source0:	%{name}-%{version}.tar.bz2
%description
foo.
#------------------------------------------------------------------
%package -n %{libname}
Summary:        foo shared library
Group:		System/Libraries
%description -n %{libname}
foo shared library.
%files -n %{libname}
%{_libdir}/lib%{name}.so.%{major}*
#------------------------------------------------------------------
%package -n %{devname}
Summary:        foo development files
Group:		Development/Other
Requires:       %{libname} = %{EVRD}
Provides:       %{name}-devel = %{EVRD}
%description -n %{devname}
foo development files.
%files -n %{devname}
%{_includedir}/*.h
%{_libdir}/*.so
#------------------------------------------------------------------
%package -n %{sdevname}
Summary:        foo development files (static library)
Group:		Development/Other
Requires:       %{devname} = %{EVRD}
Provides:       %{name}-static-devel = %{EVRD}
%description -n %{sdevname}
foo development files (static library).
%files -n %{sdevname}
%{_libdir}/*.a
#------------------------------------------------------------------
%prep
%setup -q
%build
%configure2_5x
%make
%install
%makeinstall_std
Spec файл для Node.js модулей
%define oname foo
Summary:        foo
Name:           nodejs-%{oname}
Version:        1.0
Release:        1
License:        foo
Group:          Development/Other
Url:            foo
Source0:        %{oname}-%{version}.tgz
BuildRequires:  nodejs-packaging
BuildArch:      noarch
%description
%{summary}.
%files
%doc LICENSE
%{nodejs_sitelib}/%{oname}
#------------------------------------------------------------------
%prep
%setup -q -n package
rm -rf node_modules
%build
%install
mkdir -p %{buildroot}/%{nodejs_sitelib}/%{oname}
cp -r package.json index.js %{buildroot}/%{nodejs_sitelib}/%{oname}
%nodejs_symlink_deps
Spec файл для Ruby Gem
%define rbname  foo
Summary:        Foo
Name:           rubygem-%{rbname}
Version:        1.0
Release:        1
Group:          Development/Ruby
License:        GPLv2+ or Ruby
URL:            foo
Source0:        %{rbname}-%{version}.gem
BuildRequires:  rubygems 
BuildArch:      noarch
%description
%{summary}.
%files
%{ruby_gemdir}/gems/%{rbname}-%{version}
%{ruby_gemdir}/specifications/%{rbname}-%{version}.gemspec
#------------------------------------------------------------------
%package        doc
Summary:        Documentation for %{name}
Group:          Books/Computer books
Requires:       %{name} = %{EVRD}
%description    doc
Documents, RDoc & RI documentation for %{name}.
%files doc
%{ruby_gemdir}/doc/%{rbname}-%{version}
#------------------------------------------------------------------
%prep
%setup -q
%build
%gem_build
%install
%gem_install
Spec файл для Haskell библиотек
%define module foo
Summary:	foo
Name:		ghc-%{module}
Version:	1.0
Release:	1
License:	BSD
Group:		Development/Haskell
Url:		foo
Source0:	%{module}-%{version}.tar.gz
BuildRequires:	ghc-devel
BuildRequires:	haskell-macros
Requires(post,preun):	ghc
%description
%{summary}.
%files
%{_libdir}/%{module}-%{version}
%{_cabal_rpm_deps_dir}
%{_cabal_haddoc_files}
#----------------------------------------------------------------------------
%prep
%setup -q -n %{module}-%{version}
%build
%_cabal_build
%install
%_cabal_install
%_cabal_rpm_gen_deps
%_cabal_scriptlets