소스 검색

First step toward a generic Linux packaging supporting both DEBs and RPMs...

git-svn-id: http://svn.code.sf.net/p/itop/code/trunk@3020 a333f486-631f-4898-b8df-5754b55c2be0
dflaven 11 년 전
부모
커밋
b60defd3b2
5개의 변경된 파일226개의 추가작업 그리고 0개의 파일을 삭제
  1. 5 0
      setup/exclude.txt
  2. 35 0
      setup/install/apache.conf.tpl
  3. 19 0
      setup/install/cron.tpl
  4. 94 0
      setup/install/install.sh
  5. 73 0
      setup/packaging/rpm/itop-itsm.spec

+ 5 - 0
setup/exclude.txt

@@ -0,0 +1,5 @@
+#
+# The following source files are not re-distributed with the "build" of the application
+# since they are used solely for constructing other files during the build process
+#
+packaging

+ 35 - 0
setup/install/apache.conf.tpl

@@ -0,0 +1,35 @@
+# _ITOP_NAME_ default Apache configuration
+
+Alias /_ITOP_NAME_ _ITOP_DATADIR_/_ITOP_NAME_
+
+<Directory _ITOP_DATADIR_/_ITOP_NAME_>
+	Options FollowSymLinks
+	DirectoryIndex index.php
+
+	<IfModule mod_php5.c>
+		AddType application/x-httpd-php .php
+
+		php_flag magic_quotes_gpc Off
+		php_flag track_vars On
+		php_flag register_globals Off
+	</IfModule>
+
+</Directory>
+
+# Disallow web access to directories that don't need it
+<Directory _ITOP_DATADIR_/_ITOP_NAME_/lib>
+    Order Deny,Allow
+    Deny from All
+</Directory>
+<Directory _ITOP_DATADIR_/_ITOP_NAME_/conf>
+    Order Deny,Allow
+    Deny from All
+</Directory>
+<Directory _ITOP_DATADIR_/_ITOP_NAME_/log>
+    Order Deny,Allow
+    Deny from All
+</Directory>
+<Directory _ITOP_DATADIR_/_ITOP_NAME_/data>
+    Order Deny,Allow
+    Deny from All
+</Directory>

+ 19 - 0
setup/install/cron.tpl

@@ -0,0 +1,19 @@
+#
+# Regular cron jobs for the _ITOP_NAME_ package
+#
+
+#MAILTO=root
+
+#
+# Main heartbeat scheduler for _ITOP_NAME_, launched every 5 minutes
+#
+
+*/5 * * * * root php _ITOP_DATADIR_/_ITOP_NAME_/webservices/cron.php --param_file=_ITOP_SYSCONFDIR_/_ITOP_NAME_/production/cron.params >> _ITOP_LOGDIR_/_ITOP_NAME_/cron.log 2>&1
+
+# # # # #   #
+# # # # #   #-- User name
+# # # # #------ Day of week (0-7) 0 == 7 == Sunday
+# # # #-------- Month (1 - 12)
+# # #---------- Day of month (1 - 31)
+# #------------ Hour (0 - 23)
+#-------------- Min (0 - 59)

+ 94 - 0
setup/install/install.sh

@@ -0,0 +1,94 @@
+#!/bin/bash
+# Linux installation script to be used inside packages (deb, rmp)
+# or launched manually with the appropriate variables set...
+#
+# $Id$
+#
+#set -x
+
+if [ "_$_ITOP_SYSCONFDIR_" = "_" ]; then
+	_ITOP_SYSCONFDIR_="/etc"
+fi
+if [ "_$_ITOP_VARDIR_" = "_" ]; then
+	_ITOP_VARDIR_="/var"
+fi
+if [ "_$_ITOP_NAME_" = "_" ]; then
+	_ITOP_NAME_="itop-itsm"
+fi
+
+if [ "_$PREFIX" != "_" ]; then
+	local=${HEAD}$PREFIX
+	sublocal=$PREFIX
+	conf=${HEAD}$_ITOP_SYSCONFDIR_/$_ITOP_NAME_
+	subconf=$_ITOP_SYSCONFDIR_/$_ITOP_NAME_
+	var=${HEAD}$_ITOP_VARDIR_
+	subvar=$_ITOP_VARDIR_
+else
+	local=/usr/local
+	sublocal=$local
+	conf=$local/$_ITOP_SYSCONFDIR_
+	subconf=$conf
+	var=$local/$_ITOP_VARDIR_
+	subvar=$var
+fi
+
+if [ "_$_ITOP_WEBCONFDIR_" = "_" ]; then
+	_ITOP_WEBCONFDIR_="$conf/../httpd"
+	if [ ! -d $_ITOP_WEBCONFDIR_ ]; then
+		exit "Please define a valid _ITOP_WEBCONFDIR_ variable"
+	fi
+fi
+
+# Define additional dirs
+if [ _"$_ITOP_LOGDIR_" = _"" ]; then
+        _ITOP_LOGDIR_="$var/log/$_ITOP_NAME_"
+else
+        _ITOP_LOGDIR_="${HEAD}$_ITOP_LOGDIR_"
+fi
+
+if [ _"$_ITOP_VARLIBDIR_" = _"" ]; then
+        _ITOP_VARLIBDIR_="$var/lib/$_ITOP_NAME_"
+else
+        _ITOP_VARLIBDIR_="${HEAD}$_ITOP_VARLIBDIR_"
+fi
+
+if [ _"$_ITOP_DATADIR_" = _"" ]; then
+        _ITOP_DATADIR_="$local/share/$_ITOP_NAME_"
+else
+        _ITOP_DATADIR_="${HEAD}$_ITOP_DATADIR_"
+fi
+
+# From now on Variables are correctly setup, just use them
+#
+echo "$_ITOP_NAME_ will be installed under $_ITOP_DATADIR_"
+
+echo "Creating target directories ..."
+for d in production test toolkit; do
+	install -m 755 -d $conf/$d $_ITOP_VARLIBDIR_/env-$d 
+done
+install -m 755 -d $_ITOP_DATADIR_ $_ITOP_LOGDIR_ "$_ITOP_VARLIBDIR_/data"
+
+echo "Copying files ..."
+cp -a ./web/* $_ITOP_DATADIR_
+
+echo "Creating symlinks..."
+(cd $_ITOP_DATADIR_ ; \
+ln -s $subconf conf ;\
+ln -s $subvar/log/$_ITOP_NAME_ log ;\
+ln -s $subvar/lib/$_ITOP_NAME_/env-production env-production ;\
+ln -s $subvar/lib/$_ITOP_NAME_/env-test env-test ;\
+ln -s $subvar/lib/$_ITOP_NAME_/data data ;\
+)
+(cd  $_ITOP_VARLIBDIR_ ; ln -s $sublocal/share/$_ITOP_NAME_/approot.inc.php approot.inc.php)
+
+
+if [ _"$HEAD" != _"" ]; then
+	install -m 755 -d $_ITOP_WEBCONFDIR_/conf.d $conf/../cron.d
+fi
+
+# Substitute variables for templates
+sed -e "s~_ITOP_NAME_~$_ITOP_NAME_~g" -e "s~_ITOP_SYSCONFDIR_~$conf~g" -e "s~_ITOP_DATADIR_~$sublocal/share~g" -e "s~_ITOP_LOGDIR_~$subvar/log~g" ./web/setup/install/apache.conf.tpl > $_ITOP_WEBCONFDIR_/conf.d/$_ITOP_NAME_.conf
+sed -e "s~_ITOP_NAME_~$_ITOP_NAME_~g" -e "s~_ITOP_SYSCONFDIR_~$conf~g" -e "s~_ITOP_DATADIR_~$sublocal/share~g" -e "s~_ITOP_LOGDIR_~$subvar/log~g" ./web/setup/install/cron.tpl > $conf/../cron.d/$_ITOP_NAME_
+chmod 644 $_ITOP_WEBCONFDIR_/conf.d/$_ITOP_NAME_.conf $conf/../cron.d/$_ITOP_NAME_
+
+exit 0

+ 73 - 0
setup/packaging/rpm/itop-itsm.spec

@@ -0,0 +1,73 @@
+%define webconfdir %{?_webconfdir:%{_sysconfdir}/httpd}
+%define logdir %{?_logdir:%{_var}/log}
+
+Name: itop-itsm
+Version: 2.0.2
+Release: 1%{?dist}
+# Use a variable below
+Summary: iTop: IT Operational Portal
+# Use a variable below	
+Group: Applications/Databases 
+License: AGPLv3+
+URL: http://www.combodo.com/itop		
+Source0: iTop-2.0.2-beta-1416.zip
+#Source4: install.sh
+BuildArch: noarch
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
+
+# Use a variable below
+Requires: php >= 5.2.0, php-mysql, php-mcrypt, php-xml, php-cli, php-soap, graphviz
+#, php-pecl-apc
+# Use a variable below
+BuildRequires: unzip
+
+# Use a variable below
+%description
+iTop is an open source CMDB...
+
+%prep
+%setup -c %{name}
+#cp %SOURCE4 ./web/setup/install/
+
+%build
+
+%install
+rm -rf %{buildroot}
+
+export _ITOP_NAME_=%{name}
+export _ITOP_SYSCONFDIR_=%{_sysconfdir}
+export _ITOP_WEBCONFDIR_=%{buildroot}/%{webconfdir}
+export _ITOP_VARDIR_=%{_var}
+export PREFIX=%{_prefix}
+export HEAD=%{buildroot}
+chmod 755 ./web/setup/install/install.sh
+./web/setup/install/install.sh
+
+%clean
+rm -rf %{buildroot}
+
+%files
+%defattr(-,root,root,-)
+#%dir %{_datadir}/%{name}
+%dir %{_var}/lib/%{name}
+%{_datadir}/*
+%{webconfdir}/conf.d/%{name}.conf
+%{_sysconfdir}/cron.d/%{name}
+%{_var}/lib/%{name}/approot.inc.php
+
+# Use a variable below
+%defattr(-,apache,root,-)
+%dir %{_sysconfdir}/%{name}
+#%config(noreplace) %{_sysconfdir}/%{name}/production/cron.params
+%dir %{_sysconfdir}/%{name}/test
+%dir %{_sysconfdir}/%{name}/toolkit
+%dir %{logdir}/%{name}
+%dir %{_var}/lib/%{name}/env-production
+%dir %{_var}/lib/%{name}/env-test
+%dir %{_var}/lib/%{name}/env-toolkit
+%dir %{_var}/lib/%{name}/data
+
+
+%changelog
+* Mon Aug 05 2013 Denis Flaven <denis.flaven@combodo.com>
+- ver 1.0