152 lines
5.5 KiB
Plaintext
152 lines
5.5 KiB
Plaintext
# Copyright (C) 2023 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
|
|
#
|
|
# This program is free software: you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation, either version 3 of the License, or
|
|
# (at your option) any later version.
|
|
#
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
|
|
AC_PREREQ([2.69])
|
|
AC_INIT([trisquel-automatic-netinstall-qemu], [0.1],
|
|
[GNUtoo@cyberdimension.org])
|
|
AC_CONFIG_SRCDIR([configure.ac])
|
|
AC_PROG_AWK
|
|
AC_PROG_MKDIR_P
|
|
AM_INIT_AUTOMAKE([foreign])
|
|
|
|
AC_SUBST([ENABLE_KVM], [])
|
|
AC_SUBST([MIRROR_HTTP_PROXY], [])
|
|
AC_SUBST([TRISQUEL_ROOTFS_SIZE], [])
|
|
AC_SUBST([TRISQUEL_NETINSTALL], [])
|
|
|
|
AC_ARG_ENABLE(kvm,
|
|
[AS_HELP_STRING([--disable-kvm],
|
|
[Use Kvm to obtain a public IP address (default=enabled)])],
|
|
[kvm="$enableval"],
|
|
[kvm="yes"])
|
|
|
|
AM_CONDITIONAL( [WANT_KVM], [test x"$kvm" = x"yes"])
|
|
|
|
AC_ARG_WITH(
|
|
[mirror-http-proxy],
|
|
[AS_HELP_STRING(
|
|
[--with-mirror-http-proxy=URL],
|
|
[URL to the mirror HTTP proxy (default: not set (no mirror)).
|
|
The proxy configuration is then used during both the netinstall
|
|
installation and after as well (it's added to /etc/apt/apt.conf).
|
|
The chosen URL should be reachable from QEMU. As an example, if
|
|
you use the apt-cacher-ng default configuration and make it
|
|
listen on localhost, you should use http://10.0.2.2:3142 because
|
|
localhost becomes 10.0.2.2 with the current QEMU configuration
|
|
and because the port 3142 is the default port for apt-cacher-ng.])],
|
|
[MIRROR_HTTP_PROXY=$withval],
|
|
[MIRROR_HTTP_PROXY=])
|
|
|
|
AC_ARG_WITH(
|
|
[trisquel-target-rootfs-size],
|
|
[AS_HELP_STRING(
|
|
[--with-trisquel-target-rootfs-size=SIZE],
|
|
[Size of the target image (default=3.6G). The size will be passed
|
|
as-is to the 'qemu-img create' command. See 'man 1 qemu-img' for
|
|
more details.])],
|
|
[TRISQUEL_ROOTFS_SIZE=$withval],
|
|
[TRISQUEL_ROOTFS_SIZE=3.6G]) dnl 3.5G: Fail, 3.6G: OK
|
|
|
|
AC_ARG_WITH(
|
|
[trisquel-netinstall],
|
|
[AS_HELP_STRING(
|
|
[--with-trisquel-netinstall=PATH],
|
|
[Path to trisquel netinstall image
|
|
(default=trisquel-netinst_11.0.1_amd64.iso). Note that at the moment
|
|
only trisquel-netinst_11.0.1_amd64.iso is supported. If you use
|
|
another image the signature verification will fail.])],
|
|
[TRISQUEL_NETINSTALL=$withval],
|
|
[TRISQUEL_NETINSTALL=trisquel-netinst_11.0.1_amd64.iso])
|
|
|
|
AC_CHECK_PROG([CHMOD], [chmod], [chmod])
|
|
AS_IF([test x"$CHMOD" = x""],
|
|
[AC_MSG_ERROR([chmod was not found in PATH ($PATH)])])
|
|
|
|
AC_CHECK_PROG([GPG], [gpg], [gpg])
|
|
AS_IF([test x"$GPG" = x""],
|
|
[AC_MSG_ERROR([gpg was not found in PATH ($PATH)])])
|
|
|
|
AC_CHECK_PROG([INSTALL], [install], [install])
|
|
AS_IF([test x"$INSTALL" = x""],
|
|
[AC_MSG_ERROR([install was not found in PATH ($PATH)])])
|
|
|
|
AC_CHECK_PROG([RM], [rm], [rm])
|
|
AS_IF([test x"$RM" = x""],
|
|
[AC_MSG_ERROR([rm was not found in PATH ($PATH)])])
|
|
|
|
AC_CHECK_PROG([XORRISO], [xorriso], [xorriso])
|
|
AS_IF([test x"$XORRISO" = x""],
|
|
[AC_MSG_ERROR([xorriso was not found in PATH ($PATH)])])
|
|
|
|
AC_CHECK_PROG([GRUB_MKRESCUE], [grub-mkrescue], [grub-mkrescue])
|
|
AS_IF([test x"$GRUB_MKRESCUE" = x""],
|
|
[AC_MSG_ERROR([grub-mkrescue was not found in PATH ($PATH)])])
|
|
|
|
AC_CHECK_PROG([DD], [dd], [dd])
|
|
AS_IF([test x"$DD" = x""],
|
|
[AC_MSG_ERROR([dd was not found in PATH ($PATH)])])
|
|
|
|
AC_CHECK_PROG([MKFS_VFAT], [mkfs.vfat], [mkfs.vfat])
|
|
AS_IF([test x"$MKFS_VFAT" = x""],
|
|
[AC_MSG_ERROR([mkfs.vfat was not found in PATH ($PATH)])])
|
|
|
|
AC_CHECK_PROG([MCOPY], [mcopy], [mcopy])
|
|
AS_IF([test x"$MCOPY" = x""],
|
|
[AC_MSG_ERROR([mcopy was not found in PATH ($PATH)])])
|
|
|
|
AC_CHECK_PROG([MV], [mv], [mv])
|
|
AS_IF([test x"$MV" = x""],
|
|
[AC_MSG_ERROR([mv was not found in PATH ($PATH)])])
|
|
|
|
AC_CHECK_PROG([QEMU_IMG], [qemu-img], [qemu-img])
|
|
AS_IF([test x"$QEMU_IMG" = x""],
|
|
[AC_MSG_ERROR([qemu-img was not found in PATH ($PATH)])])
|
|
|
|
AC_CHECK_PROG([QEMU_SYSTEM_X86_64], [qemu-system-x86_64], [qemu-system-x86_64])
|
|
AS_IF([test x"$QEMU_SYSTEM_X86_64" = x""],
|
|
[AC_MSG_ERROR([qemu-system-x86_64 was not found in PATH ($PATH)])])
|
|
|
|
# Check for the netinstall iso file
|
|
AS_IF([test x"`echo "$TRISQUEL_NETINSTALL" | cut -c1`" = x"~"],
|
|
[AC_MSG_ERROR([~ not supported in --with-trisquel-netinstall.
|
|
Use paths without '~'.])])
|
|
|
|
AC_CHECK_FILE([$TRISQUEL_NETINSTALL],
|
|
[],
|
|
[AC_MSG_ERROR([trisquel-netinst_11.0.1_amd64.iso was not found in
|
|
$TRISQUEL_NETINSTALL])])
|
|
|
|
AS_IF([test x"$kvm" = x"yes"],
|
|
[AS_IF([test -c /dev/kvm], [], AC_MSG_ERROR([/dev/kvm not found.]))
|
|
AS_IF([echo quit | qemu-system-x86_64 -display none -vga none -enable-kvm -monitor stdio],
|
|
[],
|
|
[AC_MSG_ERROR([KVM test with qemu-system-x86_64 failed.
|
|
Check permissions on /dev/kvm.])])])
|
|
|
|
AC_CONFIG_FILES([Makefile])
|
|
AC_OUTPUT
|
|
|
|
echo
|
|
echo "Configuration options:"
|
|
echo "======================"
|
|
AS_IF([test x"$kvm" = x"yes"],
|
|
[echo "- Kvm: enabled"],
|
|
[echo "- Kvm: disabled"])
|
|
echo "- Trisquel netinstall path: $TRISQUEL_NETINSTALL"
|
|
echo "- Trisquel target rootfs size: $TRISQUEL_ROOTFS_SIZE"
|
|
AS_IF([test x"$MIRROR_HTTP_PROXY" = x""],
|
|
[echo "- Trisquel mirror http proxy: disabled"],
|
|
[echo "- Trisquel mirror http proxy: $MIRROR_HTTP_PROXY"])
|