Hey Flavio,

Could you help take a look~?

Thanks,
Alex Wang,

On Sun, Jun 28, 2015 at 9:35 PM, Alex Wang <al...@nicira.com> wrote:

> Do not have good experience writing spec file...~
>
> Would like to post this and look for hearing any obvious fault~
>
> Tested it, on my own rhel7 vm, seems working~
>
> Thanks,
> Alex Wang,
>
> On Sun, Jun 28, 2015 at 9:38 PM, Alex Wang <al...@nicira.com> wrote:
>
>> This commit adds a rpmbuild spec file for building ovs datapath
>> in dkms similar to the one for debian.
>>
>> Signed-off-by: Alex Wang <al...@nicira.com>
>> ---
>>  rhel/.gitignore               |    1 +
>>  rhel/automake.mk              |    6 +++
>>  rhel/dkms.conf.in             |   11 +++++
>>  rhel/openvswitch-dkms.spec.in |   99
>> +++++++++++++++++++++++++++++++++++++++++
>>  4 files changed, 117 insertions(+)
>>  create mode 100644 rhel/dkms.conf.in
>>  create mode 100644 rhel/openvswitch-dkms.spec.in
>>
>> diff --git a/rhel/.gitignore b/rhel/.gitignore
>> index fa2554f..164bb66 100644
>> --- a/rhel/.gitignore
>> +++ b/rhel/.gitignore
>> @@ -1,3 +1,4 @@
>> +openvswitch-dkms.spec
>>  openvswitch-kmod-rhel5.spec
>>  openvswitch-kmod-rhel6.spec
>>  openvswitch-kmod-fedora.spec
>> diff --git a/rhel/automake.mk b/rhel/automake.mk
>> index f6272a3..e24c1a0 100644
>> --- a/rhel/automake.mk
>> +++ b/rhel/automake.mk
>> @@ -8,10 +8,13 @@
>>  EXTRA_DIST += \
>>         rhel/README.RHEL \
>>         rhel/automake.mk \
>> +       rhel/dkms.conf.in \
>>         rhel/etc_init.d_openvswitch \
>>         rhel/etc_logrotate.d_openvswitch \
>>         rhel/etc_sysconfig_network-scripts_ifdown-ovs \
>>         rhel/etc_sysconfig_network-scripts_ifup-ovs \
>> +       rhel/openvswitch-dkms.spec \
>> +       rhel/openvswitch-dkms.spec.in \
>>         rhel/openvswitch-kmod-rhel6.spec \
>>         rhel/openvswitch-kmod-rhel6.spec.in \
>>         rhel/openvswitch-kmod.files \
>> @@ -33,6 +36,9 @@ update_rhel_spec = \
>>      < $(srcdir)/rhel/$(@F).in > $(@F).tmp || exit 1; \
>>    if cmp -s $(@F).tmp $@; then touch $@; rm $(@F).tmp; else mv $(@F).tmp
>> $@; fi
>>
>> +$(srcdir)/rhel/openvswitch-dkms.spec: rhel/openvswitch-dkms.spec.in
>> $(top_builddir)/config.status
>> +       $(update_rhel_spec)
>> +
>>  $(srcdir)/rhel/openvswitch-kmod-rhel6.spec: rhel/
>> openvswitch-kmod-rhel6.spec.in $(top_builddir)/config.status
>>         $(update_rhel_spec)
>>
>> diff --git a/rhel/dkms.conf.in b/rhel/dkms.conf.in
>> new file mode 100644
>> index 0000000..2c90b4d
>> --- /dev/null
>> +++ b/rhel/dkms.conf.in
>> @@ -0,0 +1,11 @@
>> +MODULES=( __MODULES__ )
>> +
>> +PACKAGE_NAME="openvswitch"
>> +PACKAGE_VERSION="__VERSION__"
>> +MAKE="./configure --with-linux='${kernel_source_dir}' && make -C
>> datapath/linux"
>> +for __idx in ${!MODULES[@]}; do
>> +    BUILT_MODULE_NAME[__idx]=${MODULES[__idx]}
>> +    BUILT_MODULE_LOCATION[__idx]=datapath/linux/
>> +    DEST_MODULE_LOCATION[__idx]=/kernel/drivers/net/openvswitch/
>> +done
>> +AUTOINSTALL=yes
>> diff --git a/rhel/openvswitch-dkms.spec.in b/rhel/
>> openvswitch-dkms.spec.in
>> new file mode 100644
>> index 0000000..591418b
>> --- /dev/null
>> +++ b/rhel/openvswitch-dkms.spec.in
>> @@ -0,0 +1,99 @@
>> +# Spec file for Open vSwitch kernel modules using DKMS.
>> +#
>> +# Copyright (C) 2015 Nicira, Inc.
>> +#
>> +# Copying and distribution of this file, with or without modification,
>> +# are permitted in any medium without royalty provided the copyright
>> +# notice and this notice are preserved.  This file is offered as-is,
>> +# without warranty of any kind.
>> +
>> +%define oname openvswitch
>> +
>> +Name:             %{oname}-dkms
>> +Version:          @VERSION@
>> +Release:          1%{?dist}
>> +Summary:          Open vSwitch kernel module
>> +
>> +Group:            System/Kernel
>> +License:          GPLv2
>> +URL:              http://openvswitch.org/
>> +Source:           %{oname}-%{version}.tar.gz
>> +Requires:         autoconf, gcc, make
>> +Requires(post):   dkms
>> +Requires(preun):  dkms
>> +BuildRoot:        %(mktemp -ud
>> %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
>> +
>> +# Without this we get an empty openvswitch-debuginfo package (whose name
>> +# conflicts with the openvswitch-debuginfo package for OVS userspace).
>> +%undefine _enable_debug_packages
>> +
>> +
>> +%description
>> +Open vSwitch Linux kernel module.
>> +
>> +
>> +%prep
>> +%setup -n %{oname}-%{version}
>> +
>> +cat > %{oname}.conf << EOF
>> +override %{oname} * extra/%{oname}
>> +override %{oname} * weak-updates/%{oname}
>> +EOF
>> +
>> +
>> +%build
>> +# for running the '%{__make} -C datapath print-build-modules' below.
>> +./configure
>> +
>> +
>> +%install
>> +%{__rm} -rf %{buildroot}
>> +
>> +# Kernel module sources install for dkms
>> +%{__mkdir_p} %{buildroot}%{_usrsrc}/%{oname}-%{version}/
>> +%{__cp} -r * %{buildroot}%{_usrsrc}/%{oname}-%{version}/
>> +
>> +# check we can get kernel module names
>> +%{__make} -C datapath print-build-modules
>> +
>> +# Prepare dkms.conf from the dkms.conf.in template
>> +%{__sed} "s/__VERSION__/%{version}-%{release}/g;
>> s/__MODULES__/`%{__make} -C datapath print-build-modules | grep -v make`/"
>> rhel/dkms.conf.in > %{buildroot}%{_usrsrc}/%{oname}-%{version}/dkms.conf
>> +
>> +# We don't need the debian folder in there, just upstream sources.
>> +%{__rm} -rf %{buildroot}%{_usrsrc}/%{oname}-%{version}/debian
>> +# We don't need the rhel stuff in there either.
>> +%{__rm} -rf %{buildroot}%{_usrsrc}/%{oname}-%{version}/rhel
>> +# We don't need the xenserver stuff in there either.
>> +%{__rm} -rf %{buildroot}%{_usrsrc}/%{oname}-%{version}/xenserver
>> +# And we should also clean useless license files, which are already
>> +# descriped in our debian/copyright anyway.
>> +%{__rm} -f %{buildroot}%{_usrsrc}/%{oname}-%{version}/COPYING \
>> +       %{buildroot}%{_usrsrc}/%{oname}-%{version}/LICENSE
>> +
>> +install -d %{buildroot}%{_sysconfdir}/depmod.d/
>> +install -m 644 %{oname}.conf %{buildroot}%{_sysconfdir}/depmod.d/
>> +
>> +
>> +%post
>> +# Add to DKMS registry
>> +isadded=`dkms status -m "%{oname}" -v "%{version}"`
>> +if [ "x${isadded}" = "x" ] ; then
>> +    dkms add -m "%{oname}" -v "%{version}" || :
>> +fi
>> +dkms build -m "%{oname}" -v "%{version}" || :
>> +dkms install -m "%{oname}" -v "%{version}" --force || :
>> +
>> +
>> +%preun
>> +# Remove all versions from DKMS registry
>> +dkms remove -m "%{oname}" -v "%{version}" --all || :
>> +
>> +
>> +%clean
>> +%{__rm} -rf %{buildroot}
>> +
>> +
>> +%files
>> +%defattr(644,root,root,755)
>> +%{_usrsrc}/%{oname}-%{version}/
>> +/etc/depmod.d/openvswitch.conf
>> --
>> 1.7.9.5
>>
>>
>
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to