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