The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"помогите разобраться с написанием SPEC файла для ClamAV"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"помогите разобраться с написанием SPEC файла для ClamAV"  
Сообщение от dron666 email(ok) on 30-Авг-07, 09:17 
Привет народ.
Кто нибудь писал spec-файл для нового clamav 0.91.2 . У меня старая система доставшаяся ещё от предыдущего админа на Mandrive 10.0. Стандартные rpm туда не встают. По этому я хотел сделать свой rpm, но не знаю как создать этот spec.

Литературу читал но там по этому описано минимум, ничего конкретного.
Я написал свой spec файл но он только создаёт в BUILD папку clamav-0.91.2 и распаковывает туда tar архив и добавляет новую папку Mandriva, а кзь не создаётся.
вот этот spec

чfine name    clamav
чfine version    0.91.2

чfine    major    1
чfine libname    %mklibname %{name} %{major}

чfine milter    0

#compatability macros:
%{?!mkrel:чfine mkrel(c:) %{-c:0.%{-c*}.}%{!?_with_unstable:%(perl -e '$_="%{1}";m/(.\*\\D\+)?(\\d+)$/;$rel=${2}-1;re;print "$1$rel";').%{?subrel:%subrel}%{!?subrel:1}.%{?distversion:%distversion}%{?!distversion:%(echo $[%{mdkversion}/10])}}%{?_with_unstable:%{1}}%{?distsuffix:%distsuffix}%{?!distsuffix:mdk}}

%{?_with_milter:   %{expand: %%global milter 1}}
%{?_without_milter:   %{expand: %%global milter 0}}

Summary:    An anti-virus utility for Unix
Name:        %{name}
Version:    %{version}
Release:    1
License:    GPL
Group:        File tools
URL:        http://clamav.sourceforge.net/
Source0:    %{name}-%{version}.tar.gz
Source1:    clamav-clamd.init.bz2
Source2:    clamav-clamd.logrotate.bz2
Source3:    clamav-freshclam.logrotate.bz2
Source4:    clamav-freshclam.cron.bz2
Source5:    clamd.conf.bz2
Source6:    freshclam.conf.bz2
Requires(post): clamav-db
Requires(preun): clamav-db
Requires(post): %{libname} = %{version}
Requires(preun): %{libname} = %{version}
Requires(post): rpm-helper
Requires(preun): rpm-helper
Requires(pre): rpm-helper
Requires(postun): rpm-helper
BuildRequires:    bzip2-devel
#BuildRequires:    curl-devel
#BuildRequires:    bc
%if %mdkversion >= 1000
#BuildRequires:    autoconf2.5
#BuildRequires:    automake1.7
%endif
%if %{milter}
BuildRequires:    sendmail-devel
BuildRequires:    tcp_wrappers-devel
%endif
BuildRequires:    zlib-devel
BuildRequires:    gmp-devel
#BuildRequires:    curl-devel
%if %mdkversion >= 1020
BuildRequires:    dos2unix
BuildRequires:    multiarch-utils >= 1.0.3
%endif
BuildRoot:    %{_tmppath}/%{name}-%{version}-%{release}-buildroot

чscription
Clam AntiVirus is an anti-virus toolkit for Unix. The main purpose
of this software is the integration with mail seversions (attachment
scanning). The package provides a flexible and scalable
multi-threaded daemon, a commandline scanner, and a tool for
automatic updating via Internet. The programs are based on a
shared library distributed with the Clam AntiVirus package, which
you can use in your own software.

You can build %{name} with some conditional build swithes;

(ie. use with rpm --rebuild):
    --with[out] milter    Build %{name}-milter (default)

%package -n    clamd
Summary:    The Clam AntiVirus Daemon
Group:        System/Servers
Requires:    %{name} = %{version}
Requires(post): clamav-db
Requires(preun): clamav-db
Requires(post): %{libname} = %{version}
Requires(preun): %{libname} = %{version}
Requires(post): rpm-helper
Requires(preun): rpm-helper
Requires(pre): rpm-helper
Requires(postun): rpm-helper

чscription -n    clamd
The Clam AntiVirus Daemon

%if %{milter}
%package -n    %{name}-milter
Summary:    The Clam AntiVirus sendmail-milter Daemon
Group:        System/Servers
Requires:    %{name} = %{version}
Requires:    clamd = %{version}
#Requires:    sendmail
#Requires:    tcp_wrappers
Requires(post): clamav-db
Requires(preun): clamav-db
Requires(post): %{libname} = %{version}
Requires(preun): %{libname} = %{version}
Requires(post): rpm-helper
Requires(preun): rpm-helper
Requires(pre): rpm-helper
Requires(postun): rpm-helper

чscription -n    %{name}-milter
The Clam AntiVirus sendmail-milter Daemon
%endif

%package -n    %{name}-db
Summary:    Virus database for %{name}
Group:        Databases
Requires:    %{name} = %{version}
Requires(post): rpm-helper
Requires(preun): rpm-helper
Requires(pre): rpm-helper
Requires(postun): rpm-helper

чscription -n    %{name}-db
The actual virus database for %{name}

%package -n    %{libname}
Summary:    Shared libraries for %{name}
Group:          System/Libraries

чscription -n    %{libname}
Shared libraries for %{name}

%package -n    %{libname}-devel
Summary:    Development library and header files for the %{name} library
Group:        Development/C
Requires:    %{libname} = %{version}
Provides:    %{name}-devel lib%{name}-devel
Obsoletes:    %{name}-devel lib%{name}-devel

чscription -n    %{libname}-devel
This package contains the static %{libname} library and its header
files.

%prep

%setup -q -n %{name}-%{version}

# clean up
for i in `find . -type d -name CVS` `find . -type f -name .cvs\*` `find . -type f -name .#\*`; do
    if [ -e "$i" ]; then rm -rf $i; fi >&/dev/null
done
    
#%patch0 -p1 -b .mdkconf

mkdir -p Mandriva
bzcat %{SOURCE1} > Mandriva/clamav-clamd.init
bzcat %{SOURCE2} > Mandriva/clamav-clamd.logrotate
bzcat %{SOURCE3} > Mandriva/clamav-freshclam.logrotate
bzcat %{SOURCE4} > Mandriva/clamav-freshclam.cron
bzcat -f %{SOURCE5} > etc/clamd.conf
bzcat -f %{SOURCE6} > etc/freshclam.conf

# strip away annoying ^M
%if %mdkversion >= 1020
find docs -type f -exec dos2unix -U {} \;
find contrib/Windows -type f -exec dos2unix -U {} \;
%endif

%build
%if %mdkversion > 1000
export WANT_AUTOCONF_2_5=1
libtoolize --copy --force && aclocal-1.7 && autoconf && automake-1.7
%endif

export SENDMAIL="%{_libdir}/sendmail"

%serverbuild

%configure2_5x \
    --disable-%{name} \
    --with-user=%{name} \
    --with-group=%{name} \
    --with-dbdir=%{_localstatedir}/%{name} \
    --enable-id-check \
    --enable-clamuko \
    --enable-bigstack \
    --with-libcurl \
    --with-zlib=%{_prefix} \
    --disable-zlib-vcheck \
%if %{milter}
    --enable-milter --with-tcpwrappers
%else
    --disable-milter --without-tcpwrappers
%endif            

#    --enable-debug \

%make

%install
[ "%{buildroot}" != "/" ] && rm -rf %{buildroot}

%makeinstall_std

# install the init scripts
install -d %{buildroot}%{_initrddir}
install -m755 Mandriva/clamav-clamd.init %{buildroot}%{_initrddir}/clamd

%if %{milter}
# install the init script
install -m755 Mandriva/clamav-milter.init %{buildroot}%{_initrddir}/clamav-milter
# install the milter config
install -d %{buildroot}%{_sysconfdir}/sysconfig
install -m644 Mandriva/clamav-milter.sysconfig %{buildroot}%{_sysconfdir}/sysconfig/%{name}-milter
%endif

# install the logrotate stuff
install -d %{buildroot}%{_sysconfdir}/logrotate.d
install -m644 Mandriva/clamav-clamd.logrotate %{buildroot}%{_sysconfdir}/logrotate.d/clamd
install -m644 Mandriva/clamav-freshclam.logrotate %{buildroot}%{_sysconfdir}/logrotate.d/freshclam

install -d %{buildroot}%{_var}/log/%{name}
touch %{buildroot}%{_var}/log/%{name}/freshclam.log
touch %{buildroot}%{_var}/log/%{name}/clamd.log

# install the update stuff
install -d %{buildroot}%{_sysconfdir}/cron.daily
install -d %{buildroot}%{_sysconfdir}/cron.hourly
install -m755 Mandriva/clamav-freshclam.cron %{buildroot}%{_sysconfdir}/cron.daily/freshclam
install -m755 Mandriva/clamav-freshclam.cron %{buildroot}%{_sysconfdir}/cron.hourly/freshclam

# install config files
install -m644 etc/clamd.conf %{buildroot}%{_sysconfdir}/clamd.conf
install -m644 etc/clamd.conf %{buildroot}%{_sysconfdir}/clamav.conf
install -m644 etc/freshclam.conf %{buildroot}%{_sysconfdir}/freshclam.conf

# pid file dir
install -d %{buildroot}%{_var}/run/%{name}

# fix TMPDIR
install -d %{buildroot}%{_localstatedir}/%{name}/tmp

cat > README.qmail+qmail-scanner <<EOF
#!/bin/sh
#
# The "temporary" qmail+qmail-scanner HOWTO
# -----------------------------------------
#
# For some unknown and undocumented reason clamdscan stopped working
# in the excellent qmail+qmail-scanner setup somewhere after the
# 20040103 CVS snapshot.
#
# To get it working again everything assigned to the clamav user has
# to be changed to the qscand user by hand.
#
# Hint: Change the config and chown the directories like this:
# (if you are lazy you could just execute this file)

perl -pi -e "s|%{name} %{name}|qscand qscand|g" %{_sysconfdir}/logrotate.d/clamd
perl -pi -e "s|%{name} %{name}|qscand qscand|g" %{_sysconfdir}/logrotate.d/freshclam
perl -pi -e "s|^User %{name}|User qscand|g" %{_sysconfdir}/clamd.conf
perl -pi -e "s|^DatabaseOwner %{name}|DatabaseOwner qscand|g" %{_sysconfdir}/freshclam.conf

chown -R qscand:qscand %{_localstatedir}/%{name}
chown -R qscand:qscand %{_var}/log/%{name}
chown -R qscand:qscand %{_var}/run/%{name}

if [ -x %{_initrddir}/clamd ]; then
    %{_initrddir}/clamd restart
fi

if [ -x %{_initrddir}/freshclam ]; then
    %{_initrddir}/freshclam restart
fi

# Regards // Oden Eriksson
EOF

%if %mdkversion >= 1020
%multiarch_binaries %{buildroot}%{_bindir}/clamav-config
%endif

%pre
%_pre_useradd %{name} %{_localstatedir}/%{name} /bin/sh

if ! [ -z "`getent group amavis`" ]; then
    gpasswd -a %{name} amavis
fi

%post
%_post_service freshclam
%create_ghostfile %{_var}/log/%{name}/freshclam.log %{name} %{name} 0644

%preun
%_preun_service freshclam

%pre -n clamd
%_pre_useradd %{name} %{_localstatedir}/%{name} /bin/sh

%post -n clamd
%_post_service clamd
%create_ghostfile %{_var}/log/%{name}/clamd.log %{name} %{name} 0644

%preun -n clamd
%_preun_service clamd

%postun -n clamd
%_postun_userdel %{name}

%if %{milter}
%post -n %{name}-milter
%_post_service %{name}-milter

%preun -n %{name}-milter
%_preun_service %{name}-milter
%endif

%pre -n %{name}-db
%_pre_useradd %{name} %{_localstatedir}/%{name} /bin/sh

%post -n %{name}-db
# try to keep most uptodate database
for i in main daily; do
    if [ -f %{_var}/lib/clamav/$i.cvd.rpmnew ]; then
        if [ %{_var}/lib/clamav/$i.cvd.rpmnew -nt %{_var}/lib/clamav/$i.cvd ]; then
            mv -f %{_var}/lib/clamav/$i.cvd.rpmnew %{_var}/lib/clamav/$i.cvd
        else
            rm -f %{_var}/lib/clamav/$i.cvd.rpmnew
        fi
    fi
done

%postun -n %{name}-db
%_postun_userdel %{name}

%post -n %{libname} -p /sbin/ldconfig

%postun -n %{libname} -p /sbin/ldconfig

%clean
[ "%{buildroot}" != "/" ] && rm -rf %{buildroot}

%files
чfattr(-,root,root)
%doc AUTHORS BUGS ChangeLog FAQ NEWS README test UPGRADE
%doc docs/*.pdf contrib/clamdwatch contrib/clamavmon
%doc README.qmail+qmail-scanner COPYING
%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/clamav.conf
%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/freshclam.conf
%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/logrotate.d/freshclam
%attr(0755,root,root) %config(noreplace) %{_sysconfdir}/cron.daily/freshclam
%attr(0755,root,root) %config(noreplace) %{_sysconfdir}/cron.hourly/freshclam

%{_bindir}/clamscan
%{_bindir}/clamdscan
%{_bindir}/freshclam
%{_bindir}/sigtool
%{_bindir}/clamconf
%{_mandir}/man1/sigtool.1*
%{_mandir}/man1/clamdscan.1*
%{_mandir}/man1/clamscan.1*
%{_mandir}/man1/freshclam.1*
%{_mandir}/man5/clamd.conf.5*
%{_mandir}/man5/freshclam.conf.5*
%if !%{milter}
%exclude %{_mandir}/man8/%{name}-milter.8*
%endif
%dir %attr(0755,%{name},%{name}) %{_var}/run/%{name}
%dir %attr(0755,%{name},%{name}) %{_localstatedir}/%{name}
%dir %attr(0755,%{name},%{name}) %{_var}/log/%{name}
%ghost %attr(0644,%{name},%{name}) %{_var}/log/%{name}/freshclam.log

%files -n clamd
чfattr(-,root,root)
%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/clamd.conf
%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/logrotate.d/clamd
%attr(0755,root,root) %{_initrddir}/clamd
%{_sbindir}/clamd
%{_mandir}/man8/clamd.8*
%ghost %attr(0644,%{name},%{name}) %{_var}/log/%{name}/clamd.log

%if %{milter}
%files -n %{name}-milter
чfattr(-,root,root)
%doc %{name}-milter/INSTALL
%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/sysconfig/%{name}-milter
%attr(0755,root,root) %{_initrddir}/%{name}-milter
%{_sbindir}/%{name}-milter
%{_mandir}/man8/%{name}-milter.8*
%endif

%files -n %{name}-db
чfattr(-,root,root)
%dir %attr(0755,%{name},%{name}) %{_localstatedir}/%{name}
%attr(0644,%{name},%{name}) %config(noreplace) %{_localstatedir}/%{name}/daily.cvd
%attr(0644,%{name},%{name}) %config(noreplace) %{_localstatedir}/%{name}/main.cvd
%dir %attr(0755,%{name},%{name}) %{_localstatedir}/%{name}/tmp

%files -n %{libname}
чfattr(-,root,root)
%{_libdir}/libclamav
%{_libdir}/libclamav.2.*

%files -n %{libname}-devel
чfattr(-,root,root)
%doc contrib/clamdwatch
%doc contrib/clamdmon
%{_bindir}/clamav-config
%{_includedir}/*
%{_libdir}/*.a
%{_libdir}/*.la
%{_libdir}/pkgconfig/libclamav.pc
      
%changelog

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]


1. "помогите разобраться с написанием SPEC файла для ClamAV"  
Сообщение от Mikhail email(??) on 30-Авг-07, 09:27 
Возьми готовый src.rpm от любого дистрибутива, где он есть, вытащи оттуда spec и измени под себя. А может, просто его (src.rpm) --rebuild пройдет.
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "помогите разобраться с написанием SPEC файла для ClamAV"  
Сообщение от dron666 email(ok) on 30-Авг-07, 09:39 
>Возьми готовый src.rpm от любого дистрибутива, где он есть, вытащи оттуда spec
>и измени под себя. А может, просто его (src.rpm) --rebuild пройдет.

вопрос как изменить?
Я этот spec стащил со старой версии 0.90.2.
Что именно там надо изменять?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "помогите разобраться с написанием SPEC файла для ClamAV"  
Сообщение от Mikhail email(??) on 30-Авг-07, 11:59 
А просто с ним - не собирается? Может, все-таки найдешь src.rpm 0.91.2?
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "помогите разобраться с написанием SPEC файла для ClamAV"  
Сообщение от Bosh on 30-Авг-07, 14:55 
Мой совет - не мучайся собери из сырцов.
Spec  это прежде всего зависимости  
>[оверквотинг удален]
>чfattr(-,root,root)
>%doc contrib/clamdwatch
>%doc contrib/clamdmon
>%{_bindir}/clamav-config
>%{_includedir}/*
>%{_libdir}/*.a
>%{_libdir}/*.la
>%{_libdir}/pkgconfig/libclamav.pc
>
>%changelog

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "помогите разобраться с написанием SPEC файла для ClamAV"  
Сообщение от dron666 email(ok) on 30-Авг-07, 16:01 
>Мой совет - не мучайся собери из сырцов.
>Spec  это прежде всего зависимости

а из src как создать обычный rpm?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "помогите разобраться с написанием SPEC файла для ClamAV"  
Сообщение от Bosh on 30-Авг-07, 18:56 
rpmrebuild [option] <packagename>
       or
       rpm --rpmrebuild [option] <packagename>
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру