Difference between revisions of "Template Spec Files"

From Rosalab Wiki
Jump to: navigation, search
(Spec file for a Python module)
(Spec file for a Library)
Line 173: Line 173:
 
%define major 1
 
%define major 1
 
%define libname %mklibname %{name} %{major}
 
%define libname %mklibname %{name} %{major}
%define develname %mklibname %{name} -d
+
%define devname %mklibname %{name} -d
  
 +
Summary: foo
 
Name: foo
 
Name: foo
 
Version: 1.0
 
Version: 1.0
 
Release: 1
 
Release: 1
Summary: foo
 
 
License: foo
 
License: foo
 
Group: foo
 
Group: foo
URL: foo
+
Url: foo
 
Source0: %{name}-%{version}.tar.bz2
 
Source0: %{name}-%{version}.tar.bz2
  
 
%description
 
%description
 
foo
 
foo
 +
 +
#-----------------------------------------------
  
 
%package -n    %{libname}
 
%package -n    %{libname}
Summary:        Main library for gtkmm
+
Summary:        foo shared library
 +
Group: System/Libraries
  
 
%description -n %{libname}
 
%description -n %{libname}
foo shared library
+
foo shared library.
  
%package -n     %{develname}
+
%files -n %{libname}
Summary:        Headers for developing programs that will use Gtk--
+
%{_libdir}/lib%{name}.so.%{major}*
Requires:      %{libname} = %{EVRD}
+
  
%description -n %{develname}
+
#-----------------------------------------------
foo development files
+
  
%files -n %{libname}
+
%package -n     %{devname}
%{_libdir}/*.so.%{major}*
+
Summary:        foo development files
 +
Group: Development/Other
 +
Requires:      %{libname} = %{EVRD}
 +
Provides:      %{name}-devel = %{EVRD}
 +
 
 +
%description -n %{devname}
 +
foo development files.
  
%files -n %{develname}
+
%files -n %{devname}
 
%{_includedir}/*.h
 
%{_includedir}/*.h
 
%{_libdir}/*.so
 
%{_libdir}/*.so

Revision as of 15:38, 18 July 2014

Spec file for a program built using 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 -n %{name}.lang

#-----------------------------------------------

%prep
%setup -q

%build
%configure2_5x

%make

%install
%makeinstall_std

%find_lang %{name}

Spec file for a program built using 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 -n %{name}.lang

#-----------------------------------------------

%prep
%setup -q

%build
%cmake
%make

%install
%makeinstall_std -C build

%find_lang %{name}

Spec file for a program built using 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 file for a program built using Perl/Build.PL

%define upstream_name    foo
%define upstream_version 1.0

Name:           perl-%{upstream_name}
Version:        %perl_convert_version %{upstream_version}
Release:        1
Summary:	foo
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 file for a Python module

%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)
BuildArch:	noarch

%description
Example Python module

%prep
%setup -q

%install
PYTHONDONTWRITEBYTECODE=  python setup.py install --root=%{buildroot} --record=FILELIST
# For safety - avoid "file listed twice" error
sed -i 's/.*egg-info$//' FILELIST

%files -f FILELIST
%doc *.txt

Spec file for a Library

%define major 1
%define libname %mklibname %{name} %{major}
%define devname %mklibname %{name} -d

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

#-----------------------------------------------

%prep
%setup -q

%build
%configure2_5x
%make

%install
%makeinstall_std

Spec file for a Node.js module

%define oname foo

Name:           nodejs-%{oname}
Version:        1.0
Release:        1
Summary:        foo
Group:          Development/Other
License:        foo
URL:            foo
Source0:        %{oname}-%{version}.tgz
BuildArch:      noarch
BuildRequires:  nodejs-packaging

%description
%{summary}.

%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


%files
%doc LICENSE
%{nodejs_sitelib}/%{oname}