From Fedora Project Wiki

The following templates can be used to create new Drupal module and theme packages. Substitute the name for the Drupal module or theme, in the correct case as used throughout the Drupal web site.

Warning.png
Look for dependencies
Before you submit a package, you must go through the source and ensure that all dependency libraries are separately packaged in Fedora, and eliminated from the Drupal module package. Also, be sure to check the .info file for dependency information!

Module template

%global drupalver 6
# e.g. "drupal6"
%if %(test -e /etc/redhat-release && echo 0 || echo 1)
%global drupal drupal%{drupalver}
%elif  %(test -e /etc/fedora-release && echo 0 || echo 1)
%global drupal drupal
endif
# e.g. "/usr/share/drupal6"
%global drupaldir %{_datadir}/%{drupal}
# Use upstream name as expressed in URL and tarball
%global modname <<<MODULE_NAME>>>

Name:    %{drupal}-%{modname}
Version: <<<MODULE_VERSION>>>
Release: 1%{?dist}
Summary: <<<MODULE_SUMMARY>>>
Group:   Applications/Publishing
License: GPLv2+
URL:     http://drupal.org/project/%{modname}
Source0: http://ftp.drupal.org/files/projects/%{modname}-%{drupalver}.x-%{version}.tar.gz
Source1: %{name}-fedora-README.txt
BuildArch: noarch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
Requires:  %{drupal} >= 6.0

%description
<<<MODULE_DESCRIPTION - use upstream text wherever possible>>>

%prep
%setup -qn %{modname}

%build
cp %{SOURCE1} .

%install
rm -rf %{buildroot}
install -d %{buildroot}%{drupaldir}/modules/%{modname}
cp -pr * %{buildroot}%{drupaldir}/modules/%{modname}

%clean
rm -rf %{buildroot}

%files
%defattr(-,root,root,-)
%doc LICENSE.txt %{name}-fedora-README.txt
%exclude %{drupaldir}/modules/%{modname}/LICENSE.txt
%exclude %{drupaldir}/modules/%{modname}/%{name}-fedora-README.txt
%{drupaldir}/modules/%{modname}

%changelog

Theme template

It's debatable whether packaging themes is worthwhile, since these tend to be specific to each site. However, the NineSixty (aka 960.gs) theme is available, which can be subthemed for a wide variety of uses.

%global drupalver 6
# e.g. "drupal6"
%global drupal drupal%{drupalver}
# e.g. "/usr/share/drupal6"
%global drupaldir %{_datadir}/%{drupal}
# Use upstream name as expressed in URL and tarball
%global themename <<<THEME_NAME>>>

Name:    %{drupal}-%{themename}
Version: <<<THEME_VERSION>>>
Release: 1%{?dist}
Summary: <<<THEME_SUMMARY>>>
Group:   Applications/Publishing
License: GPLv2+
URL:     http://drupal.org/project/%{themename}
Source0: http://ftp.drupal.org/files/projects/%{themename}-%{drupalver}.x-%{version}.tar.gz
BuildArch: noarch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
Requires:  %{drupal} >= 6.0

%description
<<<THEME_DESCRIPTION - use upstream text wherever possible>>>

%prep
%setup -qn %{themename}

%build
# Empty.

%install
rm -rf %{buildroot}
install -d %{buildroot}%{drupaldir}/themes/%{themename}
cp -pr * %{buildroot}%{drupaldir}/themes/%{themename}

%clean
rm -rf %{buildroot}

%files
%defattr(-,root,root,-)
%doc LICENSE.txt
%exclude %{drupaldir}/themes/%{themename}/LICENSE.txt
%{drupaldir}/themes/%{themename}

%changelog