#The functionality of Bastille that is actually available is restricted. Please
#consult the README file for the meta-security layer for additional information.
SUMMARY = "Linux hardening tool"
DESCRIPTION = "Bastille Linux is a Hardening and Reporting/Auditing Program which enhances the security of a Linux box, by configuring daemons, system settings and firewalling."
LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://${S}/COPYING;md5=c93c0550bd3173f4504b2cbd8991e50b"
# Bash is needed for set +o privileged (check busybox), might also need ncurses
DEPENDS = "virtual/kernel"
RDEPENDS:${PN} = "perl bash tcl perl-module-getopt-long perl-module-text-wrap lib-perl perl-module-file-path perl-module-mime-base64 perl-module-file-find perl-module-errno perl-module-file-glob perl-module-tie-hash-namedcapture perl-module-file-copy perl-module-english perl-module-exporter perl-module-cwd libcurses-perl coreutils"
FILES:${PN} += "/run/lock/subsys/bastille"

SRC_URI = "http://sourceforge.net/projects/bastille-linux/files/bastille-linux/3.2.1/Bastille-3.2.1.tar.bz2 \
           file://AccountPermission.pm \
           file://FileContent.pm \
           file://HPSpecific.pm \
           file://Miscellaneous.pm \
           file://ServiceAdmin.pm \
           file://config \
           file://fix_version_parse.patch \
           file://fixed_defined_warnings.patch \
           file://call_output_config.patch \
           file://fix_missing_use_directives.patch \
           file://fix_number_of_modules.patch \
           file://remove_questions_text_file_references.patch \
           file://simplify_B_place.patch \
           file://find_existing_config.patch \
           file://upgrade_options_processing.patch \
           file://accept_os_flag_in_backend.patch \
           file://allow_os_with_assess.patch \
           file://edit_usage_message.patch \
           file://organize_distro_discovery.patch \
           file://do_not_apply_config.patch \
           "

SRC_URI[md5sum] = "df803f7e38085aa5da79f85d0539f91b"
SRC_URI[sha256sum] = "0ea25191b1dc1c8f91e1b6f8cb5436a3aa1e57418809ef902293448efed5021a"

S = "${WORKDIR}/Bastille"

do_install () {
	install -d ${D}${sbindir}
	install -d ${D}${libdir}/perl5/site_perl/Curses

	install -d ${D}${libdir}/Bastille
	install -d ${D}${libdir}/Bastille/API
	install -d ${D}${datadir}/Bastille
	install -d ${D}${datadir}/Bastille/OSMap
	install -d ${D}${datadir}/Bastille/OSMap/Modules
	install -d ${D}${datadir}/Bastille/Questions
	install -d ${D}${datadir}/Bastille/FKL/configs/
	install -d ${D}${sysconfdir}/Bastille
	install -m 0755 AutomatedBastille  ${D}${sbindir}
	install -m 0755 BastilleBackEnd    ${D}${sbindir}
	install -m 0755 InteractiveBastille    ${D}${sbindir}
	install -m 0644 Modules.txt    ${D}${datadir}/Bastille
	# New Weights file(s).
	install -m 0644 Weights.txt    ${D}${datadir}/Bastille
	# Castle graphic
	install -m 0644 bastille.jpg    ${D}${datadir}/Bastille/
	# Javascript file
	install -m 0644 wz_tooltip.js    ${D}${datadir}/Bastille/
	install -m 0644 Credits    ${D}${datadir}/Bastille
	install -m 0644 FKL/configs/fkl_config_redhat.cfg    ${D}${datadir}/Bastille/FKL/configs/
	install -m 0755 RevertBastille    ${D}${sbindir}
	install -m 0755 bin/bastille    ${D}${sbindir}
	install -m 0644 bastille-firewall    ${D}${datadir}/Bastille
	install -m 0644 bastille-firewall-reset    ${D}${datadir}/Bastille
	install -m 0644 bastille-firewall-schedule    ${D}${datadir}/Bastille
	install -m 0644 bastille-tmpdir-defense.sh    ${D}${datadir}/Bastille
	install -m 0644 bastille-tmpdir.csh    ${D}${datadir}/Bastille
	install -m 0644 bastille-tmpdir.sh    ${D}${datadir}/Bastille
	install -m 0644 bastille-firewall.cfg    ${D}${datadir}/Bastille
	install -m 0644 bastille-ipchains    ${D}${datadir}/Bastille
	install -m 0644 bastille-netfilter    ${D}${datadir}/Bastille
	install -m 0644 bastille-firewall-early.sh    ${D}${datadir}/Bastille
	install -m 0644 bastille-firewall-pre-audit.sh    ${D}${datadir}/Bastille
	install -m 0644 complete.xbm    ${D}${datadir}/Bastille
	install -m 0644 incomplete.xbm    ${D}${datadir}/Bastille
	install -m 0644 disabled.xpm    ${D}${datadir}/Bastille
	install -m 0644 ifup-local    ${D}${datadir}/Bastille
	install -m 0644 hosts.allow    ${D}${datadir}/Bastille

	install -m 0644 Bastille/AccountSecurity.pm    ${D}${libdir}/Bastille
	install -m 0644 Bastille/Apache.pm    ${D}${libdir}/Bastille
	install -m 0644 Bastille/API.pm    ${D}${libdir}/Bastille
	install -m 0644 ${WORKDIR}/AccountPermission.pm    ${D}${libdir}/Bastille/API
	install -m 0644 ${WORKDIR}/FileContent.pm    ${D}${libdir}/Bastille/API
	install -m 0644 ${WORKDIR}/HPSpecific.pm    ${D}${libdir}/Bastille/API
	install -m 0644 ${WORKDIR}/ServiceAdmin.pm    ${D}${libdir}/Bastille/API
	install -m 0644 ${WORKDIR}/Miscellaneous.pm    ${D}${libdir}/Bastille/API
	install -m 0644 Bastille/BootSecurity.pm    ${D}${libdir}/Bastille
	install -m 0644 Bastille/ConfigureMiscPAM.pm    ${D}${libdir}/Bastille
	install -m 0644 Bastille/DisableUserTools.pm    ${D}${libdir}/Bastille
	install -m 0644 Bastille/DNS.pm    ${D}${libdir}/Bastille
	install -m 0644 Bastille/FilePermissions.pm    ${D}${libdir}/Bastille
	install -m 0644 Bastille/FTP.pm    ${D}${libdir}/Bastille
	install -m 0644 Bastille/Firewall.pm    ${D}${libdir}/Bastille
	install -m 0644 Bastille/OSX_API.pm    ${D}${libdir}/Bastille
	install -m 0644 Bastille/LogAPI.pm    ${D}${libdir}/Bastille
	install -m 0644 Bastille/HP_UX.pm    ${D}${libdir}/Bastille
	install -m 0644 Bastille/IOLoader.pm    ${D}${libdir}/Bastille
	install -m 0644 Bastille/Patches.pm    ${D}${libdir}/Bastille
	install -m 0644 Bastille/Logging.pm    ${D}${libdir}/Bastille
	install -m 0644 Bastille/MiscellaneousDaemons.pm    ${D}${libdir}/Bastille
	install -m 0644 Bastille/PatchDownload.pm    ${D}${libdir}/Bastille
	install -m 0644 Bastille/Printing.pm    ${D}${libdir}/Bastille
	install -m 0644 Bastille/PSAD.pm    ${D}${libdir}/Bastille
	install -m 0644 Bastille/RemoteAccess.pm    ${D}${libdir}/Bastille
	install -m 0644 Bastille/SecureInetd.pm    ${D}${libdir}/Bastille
	install -m 0644 Bastille/Sendmail.pm    ${D}${libdir}/Bastille
	install -m 0644 Bastille/TestDriver.pm    ${D}${libdir}/Bastille
	install -m 0644 Bastille/TMPDIR.pm    ${D}${libdir}/Bastille
	install -m 0644 Bastille/test_AccountSecurity.pm    ${D}${libdir}/Bastille
	install -m 0644 Bastille/test_Apache.pm    ${D}${libdir}/Bastille
	install -m 0644 Bastille/test_DNS.pm    ${D}${libdir}/Bastille
	install -m 0644 Bastille/test_FTP.pm    ${D}${libdir}/Bastille
	install -m 0644 Bastille/test_HP_UX.pm    ${D}${libdir}/Bastille
	install -m 0644 Bastille/test_MiscellaneousDaemons.pm    ${D}${libdir}/Bastille
	install -m 0644 Bastille/test_Patches.pm    ${D}${libdir}/Bastille
	install -m 0644 Bastille/test_SecureInetd.pm    ${D}${libdir}/Bastille
	install -m 0644 Bastille/test_Sendmail.pm    ${D}${libdir}/Bastille
	install -m 0644 Bastille/test_BootSecurity.pm    ${D}${libdir}/Bastille
	install -m 0644 Bastille/test_DisableUserTools.pm    ${D}${libdir}/Bastille
	install -m 0644 Bastille/test_FilePermissions.pm    ${D}${libdir}/Bastille
	install -m 0644 Bastille/test_Logging.pm    ${D}${libdir}/Bastille
	install -m 0644 Bastille/test_Printing.pm    ${D}${libdir}/Bastille
	install -m 0644 Bastille/IPFilter.pm    ${D}${libdir}/Bastille
	install -m 0644 Bastille_Curses.pm    ${D}${libdir}/perl5/site_perl
	install -m 0644 Bastille_Tk.pm    ${D}${libdir}/perl5/site_perl
	install -m 0644 Curses/Widgets.pm    ${D}${libdir}/perl5/site_perl/Curses

	install -m 0644 OSMap/LINUX.bastille    ${D}${datadir}/Bastille/OSMap
	install -m 0644 OSMap/LINUX.system    ${D}${datadir}/Bastille/OSMap
	install -m 0644 OSMap/LINUX.service    ${D}${datadir}/Bastille/OSMap
	install -m 0644 OSMap/HP-UX.bastille    ${D}${datadir}/Bastille/OSMap
	install -m 0644 OSMap/HP-UX.system    ${D}${datadir}/Bastille/OSMap
	install -m 0644 OSMap/HP-UX.service    ${D}${datadir}/Bastille/OSMap
	install -m 0644 OSMap/OSX.bastille    ${D}${datadir}/Bastille/OSMap
	install -m 0644 OSMap/OSX.system    ${D}${datadir}/Bastille/OSMap

	install -m 0777 ${WORKDIR}/config ${D}${sysconfdir}/Bastille/config

	for file in `cat Modules.txt` ; do
		install -m 0644 Questions/$file.txt ${D}${datadir}/Bastille/Questions
	done

	${THISDIR}/files/set_required_questions.py ${D}${sysconfdir}/Bastille/config ${D}${datadir}/Bastille/Questions

	ln -s RevertBastille ${D}${sbindir}/UndoBastille

    # Create /var/log/Bastille in runtime.
    if [ "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}" ]; then
        install -d ${D}${nonarch_libdir}/tmpfiles.d
        echo "d ${localstatedir}/log/Bastille - - - -" > ${D}${nonarch_libdir}/tmpfiles.d/Bastille.conf
    fi
    if [ "${@bb.utils.filter('DISTRO_FEATURES', 'sysvinit', d)}" ]; then
        install -d ${D}${sysconfdir}/default/volatiles
        echo "d root root 0755 ${localstatedir}/log/Bastille none" > ${D}${sysconfdir}/default/volatiles/99_Bastille
    fi
}

FILES:${PN} += "${datadir}/Bastille \
                ${libdir}/Bastille \
                ${libdir}/perl* \
                ${sysconfdir}/* \
                ${nonarch_libdir}/tmpfiles.d"
