Jump to content

Stargazer Rpm


Recommended Posts

Занимался недавно вот таким извращением, как написанием файла спецификации для создания RPM пакета славного биллинга.

Выкладываю в народ, может пригодится кому-либо.

 

Сборка производилась на дистрибутиве CentOS 5.2 i386

 

%define stg_shortname stg
%define stg_release 2.405.9.8

Summary: The StarGazer GPL Billing
Name: stargazer
Version: 2.405.9.8
Release: 20080518
License: GPL
Group: Monitoring
URL: http://www.stargazer.dp.ua/
Vendor: stg-34 <stg34@stargazer.dp.ua>

#Sources and patches
Source: stg-2.405.9.8.tar.bz2
Source1: stargazer.init
Source2: first
Source3: last
#
#Patch1: sp1-1-2.4-2007.01.20-13.47.20.diff

Requires: expat
Requires(post): /sbin/chkconfig, /sbin/service
Requires(preun): /sbin/chkconfig, /sbin/service
BuildRequires: expat-devel
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root

%description

Stargazer is free homenetwork billing, was written by stg-34.
For more information visit http://www.stargazer.dp.ua

%prep
# Extracting Arch
%setup -q -n %{stg_shortname}-%{stg_release}
# copy some RHEL specific scripts
pwd
mkdir -p packaging/RHEL
cp %{SOURCE1} packaging/RHEL
cp %{SOURCE2} packaging/RHEL
cp %{SOURCE3} packaging/RHEL
# Patches
#%patch1 -p1 -b .sp1bak

%build
pushd projects/stargazer
# Building
sh build
popd

%install
echo $RPM_BUILD_ROOT
rm -rf $RPM_BUILD_ROOT

mkdir -p $RPM_BUILD_ROOT%{_sbindir}
mkdir -p $RPM_BUILD_ROOT%{_initrddir}
mkdir -p $RPM_BUILD_ROOT%{_libdir}/stg
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/stargazer
mkdir -p $RPM_BUILD_ROOT/var/stargazer/admins
mkdir -p $RPM_BUILD_ROOT/var/stargazer/tariffs
mkdir -p $RPM_BUILD_ROOT/var/stargazer/users/test
mkdir -p $RPM_BUILD_ROOT/var/stargazer/corps
mkdir -p $RPM_BUILD_ROOT/var/stargazer/services

# Installing STG Binary
install -m 750 projects/stargazer/stargazer $RPM_BUILD_ROOT%{_sbindir}/stargazer
# Installimg STG Modules
for mod in projects/stargazer/plugins/*/*/mod_*.so
do
install -m 750 $mod $RPM_BUILD_ROOT%{_libdir}/stg/`basename $mod`
done
# Installing STG libs
for lib in stglibs/*/*.so
do
install -m 750 $lib $RPM_BUILD_ROOT%{_libdir}/stg/`basename $lib`
done
# Install Configs
install -m 640 projects/stargazer/inst/linux/etc/stargazer/stargazer.conf $RPM_BUILD_ROOT%{_sysconfdir}/stargazer/stargazer.conf
install -m 640 projects/stargazer/inst/linux/etc/stargazer/rules $RPM_BUILD_ROOT%{_sysconfdir}/stargazer/rules
install -m 750 projects/stargazer/inst/linux/etc/stargazer/On* $RPM_BUILD_ROOT%{_sysconfdir}/stargazer/
# Installing File DB
install -m 640 projects/stargazer/inst/var/stargazer/admins/admin.adm $RPM_BUILD_ROOT/var/stargazer/admins/admin.adm
install -m 640 projects/stargazer/inst/var/stargazer/tariffs/tariff.tf $RPM_BUILD_ROOT/var/stargazer/tariffs/tariff.tf
install -m 640 projects/stargazer/inst/var/stargazer/users/test/conf $RPM_BUILD_ROOT/var/stargazer/users/test/conf
install -m 640 projects/stargazer/inst/var/stargazer/users/test/stat $RPM_BUILD_ROOT/var/stargazer/users/test/stat
# Install other stuff
install -m 755 packaging/RHEL/stargazer.init $RPM_BUILD_ROOT%{_initrddir}/stargazer
install -m 755 packaging/RHEL/first $RPM_BUILD_ROOT%{_sysconfdir}/stargazer/first
install -m 755 packaging/RHEL/last $RPM_BUILD_ROOT%{_sysconfdir}/stargazer/last

%clean
# Cleaning garbage
rm -rf $RPM_BUILD_ROOT

#%pre

%post
/sbin/chkconfig --add stargazer

%preun
if [ $1 = 0 ]; then
/sbin/service stargazer stop > /dev/null 2>&1 || :
/sbin/chkconfig --del stargazer
fi
exit 0

#%postun

%files
%defattr(-,root,root)
# Configs
%config(noreplace) %{_sysconfdir}/stargazer/stargazer.conf
%config(noreplace) %{_sysconfdir}/stargazer/rules
%config(noreplace) %{_sysconfdir}/stargazer/first
%config(noreplace) %{_sysconfdir}/stargazer/last
%config(noreplace) %{_sysconfdir}/stargazer/On*
# Binaries
%{_sbindir}/stargazer
# Modules
%{_libdir}/stg/*.so
# initrd's
%attr(755,root,root) %{_initrddir}/stargazer
# FileDB
%config(noreplace) /var/stargazer/admins/*.adm
%config(noreplace) /var/stargazer/tariffs/*.tf
%config(noreplace) /var/stargazer/users/*/conf
%config(noreplace) /var/stargazer/users/*/stat
/var/stargazer/corps
/var/stargazer/services

%changelog
* Sun Oct 26 2008 Andrey Zentavr <zentavr@gmail.com>
- New Build

* Thu Oct 16 2008 Andrey Zentavr <zentavr@gmail.com>
- Created this RPM spec

 

Сам SRC.RPM доступен здесь (UA-IX)

Link to post
Share on other sites
А готовую rpm'ку не можешь выложить? Мы бы на сайт поместили...

А в чём проблема скомпилить? =)

stargazer-2.405.9.8-20080518.i386.rpm

Сборка производилась без единого патча, с архива http://www.stg.dp.ua/download/server/2.405...405.9.8.src.tgz который перепакован мною в архив tar.bz2

Выкладывай, я не против

Дистрибутив: CentOS 5.2

Процессор: AMD Athlon XP 2600+

Компилятор: gcc версия 4.1.2 20071124 (Red Hat 4.1.2-42)

GNU Make 3.81

 

С патчами madf'a, выложенными на http://infostore.org/info/6023538 можно найти сдесь:

SRC.RPM: тыц

i386 RPM: тыц

Link to post
Share on other sites
  • 3 months later...

Поскольку в последних версиях стг он несет в себе еще и авторизатор и конфигуратор, которые используют общие бибилотеки, целесообразно разделять пакет на подпакеты: общие библиотеки, сам старгайзер, авторизатор, конфигуратор, и возможно отдельно еще и модули для работы с MySQL и FireBird, так как не всем они нужны. Примерно так (без последнего замечания) сделано в пакете для ALT Linux:

http://www.sisyphus.ru/srpm/Sisyphus/stargazer/get

Там же есть и спек, который можно взять за основу.

Link to post
Share on other sites
  • 1 month later...

Извечная штука. Когда делали релиз - забыли увеличить номер версии. По этому большинство архивов 2.405 показывают версию 2.404. Не стоит волноваться по этому поводу.

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...