summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Schmelzer2010-09-14 18:25:02 +0200
committerSebastian Schmelzer2010-09-14 18:25:02 +0200
commit43060a928b8da46cba6d9c9f46c83aa1f65f81a9 (patch)
treebb06b9ab12cb9347ce663ed8b6c36305a18ca36e
parentMerge branch 'master' of git+ssh://git.openslx.org/openslx/core (diff)
downloadcore-43060a928b8da46cba6d9c9f46c83aa1f65f81a9.tar.gz
core-43060a928b8da46cba6d9c9f46c83aa1f65f81a9.tar.xz
core-43060a928b8da46cba6d9c9f46c83aa1f65f81a9.zip
makefile uses new installer now
-rw-r--r--Makefile304
-rw-r--r--VERSION2
-rwxr-xr-xtools/installer66
3 files changed, 82 insertions, 290 deletions
diff --git a/Makefile b/Makefile
index 6d77a0b1..4d5022fe 100644
--- a/Makefile
+++ b/Makefile
@@ -10,296 +10,38 @@
# enforce the use of bash (/bin/sh might be a link to incomplete shells)
SHELL = /bin/bash
+INSTALLER = ./tools/installer
-# the following defaults should be filled via 'configure'
-# and each of them can be overriden by setting the environment variable
-# in the shell that executes this Makefile
-ifeq ($(USR_BIN_PATH),)
- USR_BIN_PATH = /usr/bin
-endif
+# the following defaults can be overwritten by exporting the new value before
+# running make
+# USR_BIN_PATH = /usr/bin
+# SLX_CONFIG_PATH = /etc/opt/openslx
+# SLX_BASE_PATH = /opt/openslx
+# SLX_PRIVATE_PATH = /var/opt/openslx
+# SLX_PUBLIC_PATH = /srv/openslx
+# SLX_TEMP_PATH = /tmp
+# SLX_INSTALL_LOG = install.log
-ifeq ($(SLX_CONFIG_PATH),)
- SLX_CONFIG_PATH = /etc/opt/openslx
-endif
-ifeq ($(SLX_BASE_PATH),)
- SLX_BASE_PATH = /opt/openslx
-endif
-ifeq ($(SLX_PRIVATE_PATH),)
- SLX_PRIVATE_PATH = /var/opt/openslx
-endif
-ifeq ($(SLX_PUBLIC_PATH),)
- SLX_PUBLIC_PATH = /srv/openslx
-endif
-ifeq ($(SLX_TEMP_PATH),)
- SLX_TEMP_PATH = /tmp
-endif
-
-ifeq ($(SLX_INSTALL_LOG),)
- SLX_INSTALL_LOG = install.log
-endif
+all:
+ @echo "Nothing to build.. Just run make install!"
tarball:
- @OPENSLX_VERSION_SVNREV=$$( svnversion .); \
- if test "$${OPENSLX_SVN_SNAPSHOT}" = "0"; then \
- unset OPENSLX_SVN_SNAPSHOT; \
- echo "OPENSLX_SVN_SNAPSHOT=\"0\"" \
- >REVISION; \
- else \
- OPENSLX_SVN_SNAPSHOT="1"; \
- rm -f REVISION; \
- fi; \
- . ./VERSIONS; \
- echo "OPENSLX_VERSION_SVNREV=\"$${OPENSLX_VERSION_SVNREV}\"" \
- >>REVISION; \
- echo "Creating OpenSLX $${OPENSLX_VERSION_STRING} tar ball "; \
- svn_repo_name=$$( pwd); \
- svn_repo_name="$${svn_repo_name##*/}"; \
- if ! test -d "../openslx-$${OPENSLX_VERSION_STRING}"; then \
- cd .. >/dev/null; \
- mkdir "openslx-$${OPENSLX_VERSION_STRING}"; \
- mount --bind "$${svn_repo_name}" "openslx-$${OPENSLX_VERSION_STRING}"; \
- cd - >/dev/null; \
- OPENSLX_SOURCEDIR_BINDMOUNT_CREATED="yes"; \
- fi; \
- echo -e "$(SLX_CONFIG_PATH)\n\
-$(SLX_BASE_PATH)\n\
-$(SLX_PRIVATE_PATH)\n\
-$(SLX_PUBLIC_PATH)\n\
-$(USR_BIN_PATH)/*" \
- >packaging/rpm/openslx-filelist; \
- cd .. >/dev/null; \
- tar cfhj \
- "$${svn_repo_name}/openslx-$${OPENSLX_VERSION_STRING}.tar.bz2" \
- --exclude-from="$${svn_repo_name}/Make.exclude_from_tar" \
- "openslx-$${OPENSLX_VERSION_STRING}/"; \
- test "$${OPENSLX_SOURCEDIR_BINDMOUNT_CREATED}" = "yes" && \
- umount "openslx-$${OPENSLX_VERSION_STRING}" && \
- rm -rf "openslx-$${OPENSLX_VERSION_STRING}"; \
- cd - >/dev/null; \
- rm REVISION packaging/rpm/openslx-filelist
-
-release-tarball:
- @export OPENSLX_SVN_SNAPSHOT=0; \
- make tarball
-
-dep-check:
- @if test "${TRACE_INSTALLATION}" = "1"; then set -x; fi; \
- echo "Checking installation requirements..."; \
- echo $$(date) >${SLX_INSTALL_LOG}; \
- if ! perl -e '$$x=2' 2>>${SLX_INSTALL_LOG} ; then \
- echo " Perl is required, please install it."; \
- exit 1; \
- fi;
-
- @ # many of the following modules are part of core perl, but we check
- @ # for them just to be sure...
- @for m in Carp Clone Config::General Data::Dumper Cwd DBI Digest::MD5 \
- Digest::SHA1 Encode Exporter Fcntl File::Basename File::Find \
- File::Glob File::Path FindBin Getopt::Long HTTP::Request::Common \
- JSON LWP::UserAgent List::Util MIME::Base64 Pod::Usage \
- POSIX Scalar::Util Socket Storable Sys::Hostname Term::ReadLine \
- Switch URI; do \
- if ! perl -e "use $$m" 2>>${SLX_INSTALL_LOG} ; then \
- echo " The perl module '$$m' is required, please install it."; \
- exit 1; \
- fi; \
- done;
-
- @ # specific database modules are optional, but we tell the user if
- @ # support for a database is missing:
- @DEFAULT_DB_TYPE=""; \
- if test -e ${SLX_CONFIG_PATH}/settings; then \
- sed ${SLX_CONFIG_PATH}/settings \
- -e "s,=,=\"," -e "s,$$,\"," \
- > /tmp/slxsettings; \
- echo "Reading local settings..."; \
- . /tmp/slxsettings; \
- rm /tmp/slxsettings; \
- fi; \
- for m in $${SLX_DB_TYPE} SQLite mysql; do \
- if ! perl -Ilib -Iconfig-db -e "use OpenSLX::MetaDB::$$m" 2>>${SLX_INSTALL_LOG} ; then \
- echo -e " 'DBD::$$m' not found (or too old), so $$m-databases will not be \
-supported."; \
- else \
- if test "$${DEFAULT_DB_TYPE}X" = "X"; then \
- DEFAULT_DB_TYPE=$$m; \
- echo " db-type => $$m"; \
- fi; \
- fi; \
- done; \
- if test "$${DEFAULT_DB_TYPE}X" = "X"; then \
- echo " None of the DB-modules is available! Please install one of them."; \
- exit 1; \
- else \
- echo $${DEFAULT_DB_TYPE} >DEFAULT-DB-TYPE; \
- fi; \
- if ! which rsync >/dev/null 2>&1; then \
- echo " rsync is required, please install it."; \
- exit 1; \
- fi;
-
-
-plain-install:
- @if test "${TRACE_INSTALLATION}" = "1"; then set -x; fi; \
- echo "Installing OpenSLX project files"; \
- mkdir -p $(SLX_BUILD_PATH)$(SLX_CONFIG_PATH)/boot-env/syslinux/themes \
- -p $(SLX_BUILD_PATH)$(SLX_BASE_PATH)/lib \
- -p $(SLX_BUILD_PATH)$(SLX_BASE_PATH)/bin \
- -p $(SLX_BUILD_PATH)$(SLX_BASE_PATH)/share/boot-env \
- -p $(SLX_BUILD_PATH)$(SLX_BASE_PATH)/share/initramfs \
- -p $(SLX_BUILD_PATH)$(SLX_BASE_PATH)/share/squashfs \
- -p $(SLX_BUILD_PATH)$(SLX_BASE_PATH)/share/templates \
- -p $(SLX_BUILD_PATH)$(SLX_BASE_PATH)/share/ramfstools \
- -p $(SLX_BUILD_PATH)${USR_BIN_PATH};
-
- @ # copy license
- @cp COPYING $(SLX_BUILD_PATH)$(SLX_BASE_PATH)/;
-
- @ # copy all PERL-scripts and their required modules:
- @cp bin/slx* $(SLX_BUILD_PATH)$(SLX_BASE_PATH)/bin/; \
- cp config-db/slx* $(SLX_BUILD_PATH)$(SLX_BASE_PATH)/bin/; \
- cp installer/slx* $(SLX_BUILD_PATH)$(SLX_BASE_PATH)/bin/; \
- cp os-plugins/slx* $(SLX_BUILD_PATH)$(SLX_BASE_PATH)/bin/; \
- cp tools/uclibc-wrapper $(SLX_BUILD_PATH)$(SLX_BASE_PATH)/bin/; \
- tar --exclude=.svn -cp -C lib OpenSLX \
- | tar -xp -C $(SLX_BUILD_PATH)$(SLX_BASE_PATH)/lib; \
- tar --exclude=.svn -cp -C boot-env OpenSLX \
- | tar -xp -C $(SLX_BUILD_PATH)$(SLX_BASE_PATH)/lib; \
- tar --exclude=.svn -cp -C config-db OpenSLX \
- | tar -xp -C $(SLX_BUILD_PATH)$(SLX_BASE_PATH)/lib; \
- tar --exclude=.svn -cp -C installer OpenSLX \
- | tar -xp -C $(SLX_BUILD_PATH)$(SLX_BASE_PATH)/lib; \
- tar --exclude=.svn -cp -C os-plugins OpenSLX \
- | tar -xp -C $(SLX_BUILD_PATH)$(SLX_BASE_PATH)/lib; \
- tar --exclude=.svn -cp -C os-plugins plugins \
- | tar -xp -C $(SLX_BUILD_PATH)$(SLX_BASE_PATH)/lib; \
+ @$(INSTALLER) build-tarball
+
+rpm:
+ @$(INSTALLER) build-rpm
- @ # copy distro-info (some parts into /opt, others into /etc):
- @tar --exclude=.svn --exclude=*.example \
- -cp -C lib distro-info \
- | tar -xp -C $(SLX_BUILD_PATH)$(SLX_BASE_PATH)/share; \
- tar --exclude=.svn --exclude=prereqfiles --exclude=trusted-package-keys/* \
- --exclude=*.default --exclude=mirrors \
- -cp -C lib distro-info \
- | tar -xp -C $(SLX_BUILD_PATH)$(SLX_CONFIG_PATH); \
+deb:
+ @$(INSTALLER) build-deb
- @ # link all binaries & scripts into user-path:
- @ln -sf $(SLX_BASE_PATH)/bin/slx* $(SLX_BUILD_PATH)$(USR_BIN_PATH)/; \
-
- @ # copy shareable data:
- @tar --exclude=.svn -cp -C initramfs stage3-stuff/ | \
- tar -xp --strip-components 1 \
- -C $(SLX_BUILD_PATH)$(SLX_BASE_PATH)/share/initramfs; \
- tar --exclude=.svn -cp -C initramfs tools | \
- tar -xp --strip-components 1 \
- -C $(SLX_BUILD_PATH)$(SLX_BASE_PATH)/share/ramfstools; \
- tar --exclude=.svn -cp -C initramfs distro-specs | \
- tar -xp -C $(SLX_BUILD_PATH)$(SLX_BASE_PATH)/share; \
- tar --exclude=.svn -cp -C initramfs uclib-rootfs | \
- tar -xp -C $(SLX_BUILD_PATH)$(SLX_BASE_PATH)/share; \
- tar --exclude=.svn --exclude *.example --exclude OpenSLX -cp boot-env | \
- tar -xp -C $(SLX_BUILD_PATH)$(SLX_BASE_PATH)/share/; \
- cp -p boot-env/syslinux/pxemenu-*.example boot-env/syslinux/README.pxe \
- $(SLX_BUILD_PATH)$(SLX_CONFIG_PATH)/boot-env/syslinux/; \
- cp -p tools/mksquashfs $(SLX_BUILD_PATH)$(SLX_BASE_PATH)/share/squashfs/mksquashfs_3_2; \
- cp -p initramfs/eglibc-packages/mksquashfs/usr/bin/mksquashfs_3_3 \
- $(SLX_BUILD_PATH)$(SLX_BASE_PATH)/share/squashfs/; \
- cp -p initramfs/eglibc-packages/mksquashfs/usr/bin/mksquashfs_4 \
- $(SLX_BUILD_PATH)$(SLX_BASE_PATH)/share/squashfs/; \
- tar --exclude=.svn -cp -C initramfs tpm | \
- tar -xp -C $(SLX_BUILD_PATH)$(SLX_BASE_PATH)/share; \
-
- @ # link the library loader for the uclibc (to use the uclibc busybox)
- @ ln -sf ${SLX_BASE_PATH}/share/uclib-rootfs/lib/ld-uClibc.so.0 \
- /lib/ld-uClibc.so.0
-
-postinstall:
- @ # create default config folder hierarchy:
- @perl -Ilib -e 'use OpenSLX::ConfigFolder; createConfigFolderForDefaultSystem();'
-
- @ # create complete default settings and empty local settings file:
- @echo -e "# default setup for OpenSLX-installation\
-\n\
-\n# paths that are fixed at packaging/installation time:\
-\nSLX_BASE_PATH=${SLX_BASE_PATH}\
-\nSLX_CONFIG_PATH=${SLX_CONFIG_PATH}\
-\n\
-\n# paths which can be adjusted after installation:\
-\nSLX_PRIVATE_PATH=${SLX_PRIVATE_PATH}\
-\nSLX_PUBLIC_PATH=${SLX_PUBLIC_PATH}\
-\nSLX_TEMP_PATH=${SLX_TEMP_PATH}\n" \
- > $(SLX_BUILD_PATH)$(SLX_BASE_PATH)/share/settings.default; \
- test -e $(SLX_BUILD_PATH)$(SLX_CONFIG_PATH)/settings || \
- echo -e "# Local setup for OpenSLX (overrides default settings).\
-\n#\n# Please look at $(SLX_BASE_PATH)/share/settings.default and the docs to learn\
-\n# about the available options.\n" \
- > $(SLX_BUILD_PATH)$(SLX_CONFIG_PATH)/settings; \
-
- @ # create slxversion script:
- @if test -e REVISION; then \
- . REVISION; \
- else \
- OPENSLX_VERSION_SVNREV=$$(svnversion .); \
- fi; \
- test "$${OPENSLX_SVN_SNAPSHOT}" = "0" && \
- unset OPENSLX_SVN_SNAPSHOT || \
- OPENSLX_SVN_SNAPSHOT="1"; \
- . ./VERSIONS; \
- echo -e "#! /bin/sh\n\necho $${OPENSLX_VERSION_STRING}" \
- > $(SLX_BUILD_PATH)$(SLX_BASE_PATH)/bin/slxversion; \
- chmod a+x $(SLX_BUILD_PATH)$(SLX_BASE_PATH)/bin/slxversion; \
- ln -sf $(SLX_BASE_PATH)/bin/slxversion $(SLX_BUILD_PATH)$(USR_BIN_PATH)/; \
-
- @ # set default db-type:
- @DEFAULT_DB_TYPE=$$(cat DEFAULT-DB-TYPE); \
- rm DEFAULT-DB-TYPE; \
- echo -n ' '; slxsettings set db-type="$${DEFAULT_DB_TYPE}";
-
-install: check-upgrade dep-check plain-install postinstall
-
-prepare_upgrade:
- @rm -rf $(SLX_BASE_PATH)
- @rm -f $(USR_BIN_PATH)/slx*
+install:
+ @$(INSTALLER) install
uninstall:
- @echo "Uninstalling openslx.org project files but keeping configs \
-and stage1"
- @rm -rf $(SLX_BASE_PATH)
- @echo "keeping files in $(SLX_CONFIG_PATH)"
- @echo "keeping files in $(SLX_PRIVATE_PATH)"
- @rm -rf $(SLX_PUBLIC_PATH)
- @rm -f $(USR_BIN_PATH)/slx*
- @rm -f /lib/ld-uClibc.so.0
+ @$(INSTALLER) uninstall
mrproper:
- @echo "Wiping all!"
- @rm -rf $(SLX_BASE_PATH)
- @rm -rf $(SLX_CONFIG_PATH)
- @rm -rf $(SLX_PRIVATE_PATH)
- @rm -rf $(SLX_PUBLIC_PATH)
- @rm -f $(USR_BIN_PATH)/slx*
-
-check-upgrade:
- @ # find out if there is an older version installed and, if so, clean that
- @INSTALLED_VERSION=$$(slxversion 2>/dev/null); \
- if ! test -z "$${INSTALLED_VERSION}"; then \
- if test -e REVISION; then \
- . REVISION; \
- else \
- OPENSLX_VERSION_SVNREV=$$(svnversion .); \
- fi; \
- test "$${OPENSLX_SVN_SNAPSHOT}" = "0" && \
- unset OPENSLX_SVN_SNAPSHOT || \
- OPENSLX_SVN_SNAPSHOT="1"; \
- . ./VERSIONS; \
- if test $${INSTALLED_VERSION} != $${OPENSLX_VERSION_STRING}; then \
- echo "preparing upgrade from version ($${INSTALLED_VERSION})"; \
- make prepare_upgrade; \
- fi; \
- fi
+ @$(INSTALLER) mrproper
clean:
- @echo "Cleanup OpenSLX source directory "
- @for file in $(SLX_INSTALL_LOG) openslx-*.tar.bz2; do \
- rm -f $${file}; \
- done
+ @$(INSTALLER) clean
diff --git a/VERSION b/VERSION
index c1e1fa80..ee240215 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-v5.0.0-12-g5d69d3f
+v5.0.0-15-gef81816
diff --git a/tools/installer b/tools/installer
index 80a380ad..998bb97d 100755
--- a/tools/installer
+++ b/tools/installer
@@ -262,12 +262,13 @@ do_install()
exit 1
fi
check_upgrade
- make_install_tarball
+ make_install_tarball >>${SLX_INSTALL_LOG} 2>&1
VERSIONSTRING="openslx-$(git_version)"
check_upgrade
INSTALL_HOME=$(pwd)
cd ${SLX_BUILD_PATH}/; tar xf $INSTALL_HOME/$VERSIONSTRING.tar
cd $INSTALL_HOME
+ echo -e " [${LightGreen}ok${NC}]"
}
uninstall()
@@ -284,6 +285,14 @@ uninstall()
mrproper()
{
+ echo -e "${LightRed}*warning*${NC} This will remove all cloned/exported OpenSLX systems from your machine!"
+ echo -n "Press <Ctrl>-C to abort.. "
+ for i in 4 3 2 1
+ do
+ echo -n "$i.."
+ sleep 1
+ done
+ echo "0"
echo -n " * Wiping all!"
rm -rf ${SLX_BASE_PATH}
rm -rf ${SLX_CONFIG_PATH}
@@ -417,7 +426,7 @@ build_dpkg_package()
echo -e " [${LightGreen}ok${NC}]"
mkdir -p $INSTALL_HOME/pkgs/
- sh -c "find $SLX_DEPBUILD_PATH/ -iname \"*.deb\" -exec cp {} $INSTALL_HOME/pkgs/ \;"
+ cp $SLX_DEPBUILD_PATH.deb $INSTALL_HOME/pkgs/$VERSIONSTRING.deb
cd $INSTALL_HOME
rm -rf $SLX_DEPBUILD_PATH
}
@@ -484,23 +493,27 @@ build_rpm_package()
rm -rf $SLX_RPMBUILD_PATH
}
-
+
clean()
{
echo -n " * Cleanup OpenSLX source directory"
for file in ${SLX_INSTALL_LOG} openslx-*.tar.bz2; do
rm -f ${file}
done
+ rm -rf _install
echo -e " [${LightGreen}ok${NC}]"
}
+
cmd_usage()
{
echo "Usage: ..."
echo " plain-install"
echo " install"
- echo " build_rpm"
- echo " build_deb"
+ echo " build-rpm"
+ echo " build-deb"
+ echo " clean"
+ echo " mrproper"
}
cmd_plain_install()
@@ -527,13 +540,38 @@ cmd_build_rpm()
build_rpm_package
}
-cmd_build_dep()
+cmd_build_deb()
{
echo "creating deb package"
build_dpkg_package
}
+cmd_build_tarball()
+{
+ echo "creating deb package"
+ make_install_tarball bzip2
+}
+
+cmd_clean()
+{
+ echo "Cleanup source directory"
+ clean
+}
+
+cmd_uninstall()
+{
+ echo "normal uninstall"
+ uninstall
+}
+
+cmd_mrproper()
+{
+ echo "Remove all OpenSLX files from the system"
+ mrproper
+}
+
+
case "$1" in
"plain-install")
cmd_plain_install
@@ -544,8 +582,20 @@ case "$1" in
"build-rpm")
cmd_build_rpm
;;
- "build-dep")
- cmd_build_dep
+ "build-deb")
+ cmd_build_deb
+ ;;
+ "build-tarball")
+ cmd_build_tarball
+ ;;
+ "uninstall")
+ cmd_uninstall
+ ;;
+ "clean")
+ cmd_clean
+ ;;
+ "mrproper")
+ cmd_mrproper
;;
*)
cmd_usage