Fix ISO build process for CentOS7

Existing ISO build scripts can't build CentOS7 based
ISO due to changes in package names, files, and so on.

This review fixes issue have been found, and introduces
several minor improvements.

Blueprint: master-on-centos7

Breaks: centos6

Co-Authored-By: Ivan Suzdal <isuzdal@mirantis.com>

Change-Id: I830ff03aa1051f14f2bdafb16cca1979d38e9ad5
This commit is contained in:
Dmitry Teselkin 2015-11-19 18:56:47 +03:00
parent fda7c87dea
commit 4853b7da21
11 changed files with 80 additions and 100 deletions

View File

@ -92,7 +92,7 @@ endef
#FIXME Partial-Bug: #1403088
YUM:=sudo yum -c $(BUILD_DIR)/bootstrap/etc/yum.conf --exclude=ruby-2.1.1 --exclude=ruby21 --installroot=$(INITRAMROOT) -y --nogpgcheck
KERNEL_PATTERN:=kernel-lt-3.10.*
KERNEL_PATTERN:=kernel-3.10.0*
KERNEL_FIRMWARE_PATTERN:=linux-firmware*
clean: clean-bootstrap
@ -109,7 +109,7 @@ $(BUILD_DIR)/bootstrap/initramfs.img: \
$(BUILD_DIR)/bootstrap/linux: $(BUILD_DIR)/mirror/centos/build.done
mkdir -p $(BUILD_DIR)/bootstrap
find $(LOCAL_MIRROR_MOS_CENTOS_OS_BASEURL) -name '$(KERNEL_PATTERN)' | xargs rpm2cpio | \
find $(LOCAL_MIRROR_CENTOS_OS_BASEURL) -name '$(KERNEL_PATTERN)' | xargs rpm2cpio | \
(cd $(BUILD_DIR)/bootstrap/; cpio -imd './boot/vmlinuz*')
mv $(BUILD_DIR)/bootstrap/boot/vmlinuz* $(BUILD_DIR)/bootstrap/linux
rm -r $(BUILD_DIR)/bootstrap/boot
@ -204,9 +204,9 @@ $(BUILD_DIR)/bootstrap/prepare-initram-root.done: \
# Perhaps this stuff should be moved to global config.mk
# Installing kernel modules
find $(LOCAL_MIRROR_MOS_CENTOS_OS_BASEURL) -name '$(KERNEL_PATTERN)' | xargs rpm2cpio | \
find $(LOCAL_MIRROR_CENTOS_OS_BASEURL) -name '$(KERNEL_PATTERN)' | xargs rpm2cpio | \
( cd $(INITRAMROOT); sudo cpio -idm './lib/modules/*' './boot/vmlinuz*' )
find $(LOCAL_MIRROR_MOS_CENTOS_OS_BASEURL) -name '$(KERNEL_FIRMWARE_PATTERN)' | xargs rpm2cpio | \
find $(LOCAL_MIRROR_CENTOS_OS_BASEURL) -name '$(KERNEL_FIRMWARE_PATTERN)' | xargs rpm2cpio | \
( cd $(INITRAMROOT); sudo cpio -idm './lib/firmware/*' )
find $(LOCAL_MIRROR_CENTOS_OS_BASEURL) -name 'libmlx4*' | xargs rpm2cpio | \
( cd $(INITRAMROOT); sudo cpio -idm './etc/*' './usr/lib64/*' )

View File

@ -17,4 +17,4 @@ kernel = images/pxeboot/vmlinuz
initrd = images/pxeboot/initrd.img
[stage2]
mainimage = images/install.img
mainimage = LiveOS/squashfs.img

View File

@ -15,13 +15,18 @@ menu color hotsel 0 #ff000000 #ffffffff
menu color hotkey 7 #ffffffff #ff000000
menu color scrollbar 0 #ffffffff #00000000
label nailgunstatic
menu label DVD Fuel Install (^Static IP)
label nailgun
menu label ^1. Fuel Install (Static IP)
menu default
kernel vmlinuz
append initrd=initrd.img biosdevname=0 ks=cdrom:/ks.cfg ip=10.20.0.2 gw=10.20.0.1 dns1=10.20.0.1 netmask=255.255.255.0 hostname=fuel.domain.tld showmenu=yes
append initrd=initrd.img net.ifnames=0 biosdevname=0 ks=hd:sr0:/ks.cfg ip=10.20.0.2::10.20.0.1:255.255.255.0:fuel.domain.tld:eth0:off::: dns1=10.20.0.1 selinux=0
label nailgunifname
menu label ^2. Fuel Advanced Install (Static IP)
kernel vmlinuz
append initrd=initrd.img ks=hd:sr0:/ks.cfg ip=10.20.0.2::10.20.0.1:255.255.255.0:fuel.domain.tld:adminif:off::: dns1=10.20.0.1 selinux=0 ifname=adminif:XX:XX:XX:XX:XX:XX
label usbboot
menu label USB Fuel Install (S^tatic IP)
menu label ^3. USB Fuel Install (Static IP)
kernel vmlinuz
append initrd=initrd.img biosdevname=0 repo=hd:LABEL=will_be_substituted_with_ISO_VOLUME_ID:/ ks=hd:LABEL=will_be_substituted_with_ISO_VOLUME_ID:/ks.cfg ip=10.20.0.2 gw=10.20.0.1 dns1=10.20.0.1 netmask=255.255.255.0 hostname=fuel.domain.tld showmenu=yes

View File

@ -241,8 +241,8 @@ $(ISO_PATH): $(BUILD_DIR)/iso/isoroot.done
mkdir -p $(BUILD_DIR)/iso/efi_tmp/efi_image
# We need to have a partition which will be pointed from ISO as efi partition
# vmlinuz + initrd + bootloader + conffile = about 38MB
dd bs=1M count=40 if=/dev/zero of=$(BUILD_DIR)/iso/efi_tmp/efiboot.img
# vmlinuz + initrd + bootloader + conffile = about 38MB. 100M should be enough ^_^
dd bs=1M count=100 if=/dev/zero of=$(BUILD_DIR)/iso/efi_tmp/efiboot.img
# UEFI standard say to us that EFI partition should be some FAT-related filesystem
mkfs.vfat $(BUILD_DIR)/iso/efi_tmp/efiboot.img
sudo umount -l $(BUILD_DIR)/iso/efi_tmp/efi_image || true
@ -253,7 +253,7 @@ $(ISO_PATH): $(BUILD_DIR)/iso/isoroot.done
# bootloader and it conffiles in /EFI/BOOT/* on main ISO partition (with ISO9660 fs)
echo > $(BUILD_DIR)/iso/isoroot-mkisofs/EFI/BOOT/BOOTX64.conf
echo "default=0" >> $(BUILD_DIR)/iso/isoroot-mkisofs/EFI/BOOT/BOOTX64.conf
echo "splashimage=/EFI/BOOT/splash.xpm.gz" >> $(BUILD_DIR)/iso/isoroot-mkisofs/EFI/BOOT/BOOTX64.conf
#echo "splashimage=/EFI/BOOT/splash.xpm.gz" >> $(BUILD_DIR)/iso/isoroot-mkisofs/EFI/BOOT/BOOTX64.conf
echo "timeout 300" >> $(BUILD_DIR)/iso/isoroot-mkisofs/EFI/BOOT/BOOTX64.conf
echo "hiddenmenu" >> $(BUILD_DIR)/iso/isoroot-mkisofs/EFI/BOOT/BOOTX64.conf
echo "title DVD Fuel Install (Static IP)" >> $(BUILD_DIR)/iso/isoroot-mkisofs/EFI/BOOT/BOOTX64.conf
@ -271,8 +271,8 @@ $(ISO_PATH): $(BUILD_DIR)/iso/isoroot.done
sudo cp -f $(BUILD_DIR)/iso/isoroot-mkisofs/isolinux/initrd.img $(BUILD_DIR)/iso/efi_tmp/efi_image/
sudo mkdir -p $(BUILD_DIR)/iso/efi_tmp/efi_image/EFI/BOOT/
sudo cp -f $(BUILD_DIR)/iso/isoroot-mkisofs/EFI/BOOT/BOOTX64.conf $(BUILD_DIR)/iso/efi_tmp/efi_image/EFI/BOOT/
sudo cp -f $(BUILD_DIR)/iso/isoroot-mkisofs/EFI/BOOT/BOOTX64.efi $(BUILD_DIR)/iso/efi_tmp/efi_image/EFI/BOOT/
sudo cp -f $(BUILD_DIR)/iso/isoroot-mkisofs/EFI/BOOT/splash.xpm.gz $(BUILD_DIR)/iso/efi_tmp/efi_image/EFI/BOOT/
sudo cp -f $(BUILD_DIR)/iso/isoroot-mkisofs/EFI/BOOT/BOOTX64.EFI $(BUILD_DIR)/iso/efi_tmp/efi_image/EFI/BOOT/
#sudo cp -f $(BUILD_DIR)/iso/isoroot-mkisofs/EFI/BOOT/splash.xpm.gz $(BUILD_DIR)/iso/efi_tmp/efi_image/EFI/BOOT/
sudo umount $(BUILD_DIR)/iso/efi_tmp/efi_image
cp -f $(BUILD_DIR)/iso/efi_tmp/efiboot.img $(BUILD_DIR)/iso/isoroot-mkisofs/images/
sudo rm -rf $(BUILD_DIR)/iso/efi_tmp/

View File

@ -1,7 +1,8 @@
ISOLINUX_FILES:=boot.msg grub.conf initrd.img isolinux.bin memtest vesamenu.c32 vmlinuz
IMAGES_FILES:=efiboot.img efidisk.img install.img
IMAGES_FILES:=efiboot.img boot.iso
LIVEOS_FILES:=squashfs.img
PXEBOOT_FILES:=initrd.img vmlinuz
EFI_FILES:=BOOTX64.conf BOOTX64.efi splash.xpm.gz
EFI_FILES:=BOOTX64.EFI MokManager.efi grub.cfg grubx64.efi
MIRROR_CENTOS_KERNEL?=$(MIRROR_CENTOS)
MIRROR_CENTOS_KERNEL_BASEURL?=$(MIRROR_CENTOS_KERNEL)/os/$(CENTOS_ARCH)
@ -30,9 +31,16 @@ $(addprefix $(LOCAL_MIRROR_CENTOS_OS_BASEURL)/images/pxeboot/,$(PXEBOOT_FILES)):
wget -nv -O $@.tmp $(MIRROR_CENTOS_KERNEL_BASEURL)/images/pxeboot/$(@F)
mv $@.tmp $@
# centos liveos images
$(addprefix $(LOCAL_MIRROR_CENTOS_OS_BASEURL)/LiveOS/,$(LIVEOS_FILES)):
@mkdir -p $(@D)
wget -nv -O $@.tmp $(MIRROR_CENTOS_KERNEL_BASEURL)/LiveOS/$(@F)
mv $@.tmp $@
$(BUILD_DIR)/mirror/centos/boot.done: \
$(addprefix $(LOCAL_MIRROR_CENTOS_OS_BASEURL)/images/,$(IMAGES_FILES)) \
$(addprefix $(LOCAL_MIRROR_CENTOS_OS_BASEURL)/EFI/BOOT/,$(EFI_FILES)) \
$(addprefix $(LOCAL_MIRROR_CENTOS_OS_BASEURL)/isolinux/,$(ISOLINUX_FILES)) \
$(addprefix $(LOCAL_MIRROR_CENTOS_OS_BASEURL)/images/pxeboot/,$(PXEBOOT_FILES))
$(addprefix $(LOCAL_MIRROR_CENTOS_OS_BASEURL)/images/pxeboot/,$(PXEBOOT_FILES)) \
$(addprefix $(LOCAL_MIRROR_CENTOS_OS_BASEURL)/LiveOS/,$(LIVEOS_FILES))
$(ACTION.TOUCH)

View File

@ -25,6 +25,5 @@ endef
define extra_repo_metadata
set -ex ; createrepo -g $(LOCAL_MIRROR)/extra-repos/$(call get_repo_name,$1)/comps.xml \
-u media://`head -1 $(SOURCE_DIR)/iso/.discinfo` \
-o $(LOCAL_MIRROR)/extra-repos/$(call get_repo_name,$1)/ $(LOCAL_MIRROR)/extra-repos/$(call get_repo_name,$1)/
endef

View File

@ -7,7 +7,6 @@ $(BUILD_DIR)/mirror/centos/mos-download.done: $(BUILD_DIR)/mirror/centos/yum-con
$(BUILD_DIR)/mirror/centos/mos-repo.done: $(BUILD_DIR)/mirror/centos/mos-download.done
createrepo -g $(LOCAL_MIRROR_MOS_CENTOS)/comps.xml \
-u media://`head -1 $(SOURCE_DIR)/iso/.discinfo` \
-o $(LOCAL_MIRROR_MOS_CENTOS)/ $(LOCAL_MIRROR_MOS_CENTOS)/
$(ACTION.TOUCH)

View File

@ -186,6 +186,5 @@ $(BUILD_DIR)/mirror/centos/repo.done: \
$(BUILD_DIR)/mirror/centos/yum.done \
| $(LOCAL_MIRROR_CENTOS_OS_BASEURL)/comps.xml
createrepo -g $(LOCAL_MIRROR_CENTOS_OS_BASEURL)/comps.xml \
-u media://`head -1 $(SOURCE_DIR)/iso/.discinfo` \
-o $(LOCAL_MIRROR_CENTOS_OS_BASEURL)/ $(LOCAL_MIRROR_CENTOS_OS_BASEURL)/
$(ACTION.TOUCH)

View File

@ -12,7 +12,7 @@ clean-rpm:
RPM_SOURCES:=$(BUILD_DIR)/packages/rpm/SOURCES
$(BUILD_DIR)/packages/rpm/buildd.tar.gz: SANDBOX_PACKAGES:=rpm-build tar yum yum-utils
$(BUILD_DIR)/packages/rpm/buildd.tar.gz: SANDBOX_PACKAGES:=ruby rpm-build tar python-setuptools python-pbr nodejs npm yum yum-utils git
$(BUILD_DIR)/packages/rpm/buildd.tar.gz: SANDBOX:=$(BUILD_DIR)/packages/rpm/SANDBOX/buildd
$(BUILD_DIR)/packages/rpm/buildd.tar.gz: export SANDBOX_UP:=$(SANDBOX_UP)
$(BUILD_DIR)/packages/rpm/buildd.tar.gz: export SANDBOX_DOWN:=$(SANDBOX_DOWN)
@ -73,7 +73,7 @@ else
$(BUILD_DIR)/packages/rpm/$1-repocleanup.done: SPECFILE:=$(SOURCE_DIR)/packages/rpm/specs/$1.spec
endif
$(BUILD_DIR)/packages/rpm/$1-repocleanup.done: $(BUILD_DIR)/mirror/centos/mos-repo.done
python $(SOURCE_DIR)/packages/rpm/genpkgnames.py $$(SPECFILE) | xargs -I{} sudo find $(LOCAL_MIRROR_MOS_CENTOS_OS_BASEURL)/Packages -regex '.*/{}-[^-]+-[^-]+' -delete
python $(SOURCE_DIR)/packages/rpm/genpkgnames.py $$(SPECFILE) | xargs -I{} sudo find $(LOCAL_MIRROR_MOS_CENTOS_OS_BASEURL)/Packages -type f -regex '.*/{}-[^-]+-[^-]+' -delete
$$(ACTION.TOUCH)
endef
@ -98,7 +98,6 @@ $(BUILD_DIR)/packages/rpm/repo.done: $(BUILD_DIR)/bootstrap/fuel-bootstrap-image
$(BUILD_DIR)/packages/rpm/repo.done:
find $(BUILD_DIR)/packages/rpm/RPMS -name '*.rpm' -exec cp -u {} $(LOCAL_MIRROR_MOS_CENTOS_OS_BASEURL)/Packages \;
createrepo -g $(LOCAL_MIRROR_MOS_CENTOS)/comps.xml \
-u media://`head -1 $(SOURCE_DIR)/iso/.discinfo` \
-o $(LOCAL_MIRROR_MOS_CENTOS_OS_BASEURL) $(LOCAL_MIRROR_MOS_CENTOS_OS_BASEURL)
$(ACTION.TOUCH)
@ -123,7 +122,6 @@ $(BUILD_DIR)/packages/rpm/fuel-docker-images.done: \
cp $(SANDBOX)/tmp/RPMS/*/fuel-docker-images-*.rpm $(BUILD_DIR)/packages/rpm/RPMS/x86_64
find $(BUILD_DIR)/packages/rpm/RPMS -name '*.rpm' | xargs cp -u --target-directory=$(LOCAL_MIRROR_MOS_CENTOS_OS_BASEURL)/Packages
createrepo -g $(LOCAL_MIRROR_MOS_CENTOS)/comps.xml \
-u media://`head -1 $(SOURCE_DIR)/iso/.discinfo` \
-o $(LOCAL_MIRROR_MOS_CENTOS_OS_BASEURL) $(LOCAL_MIRROR_MOS_CENTOS_OS_BASEURL)
$(ACTION.TOUCH)
@ -167,7 +165,6 @@ $(BUILD_DIR)/packages/rpm/repo-late.done: $(BUILD_DIR)/packages/rpm/repo.done
endif
find $(BUILD_DIR)/packages/rpm/RPMS -name '*.rpm' -exec cp -u --target-directory $(LOCAL_MIRROR_MOS_CENTOS_OS_BASEURL)/Packages {} +
createrepo -g $(LOCAL_MIRROR_MOS_CENTOS)/comps.xml \
-u media://`head -1 $(SOURCE_DIR)/iso/.discinfo` \
-o $(LOCAL_MIRROR_MOS_CENTOS_OS_BASEURL) $(LOCAL_MIRROR_MOS_CENTOS_OS_BASEURL)
$(ACTION.TOUCH)

View File

@ -1,5 +1,4 @@
ami-creator
anacron
apr-util
atop
augeas-libs
@ -7,7 +6,6 @@ bakefile
@Base
bash
bzip2
ceph
cloud-init
cloud-utils
cobbler
@ -15,42 +13,42 @@ cobbler-web
@Core
createrepo
cronie
cronie-anacron
crontabs
Cython
daemonize
debootstrap
deltarpm
device-mapper-persistent-data
dhcp
dnsmasq
docker-io
docker
dpkg
dpkg-dev
dpkg-devel
erlang
ethtool
euca2ools
fence-agents
fabric
fence-agents-all
gcc
gdisk
genisoimage
GeoIP
git
gperftools
grub2
grub2-efi
grub2-efi-modules
grub2-tools
gv
htop
httpd
iproute
iptables
ipxe-roms
kernel-2.6.32-504.16.2.el6
kernel-devel-2.6.32-504.16.2.el6
kernel-headers-2.6.32-504.16.2.el6
kernel-lt
kmod-hpsa
kernel
kernel-devel
kernel-headers
leveldb
libevent-devel
libfcgi
libiscsi
libmlx4
libunwind
@ -62,26 +60,25 @@ linux-firmware
logrotate
lrzip
lvm2
lxc
mailcap
mcollective
mdadm
megaraid_sas
mod_wsgi
monit
mtools
MySQL-python
MySQL-shared-wsrep
mysql-wsrep-5.6
nginx
nmap-ncat
nodejs-nailgun
openssh-clients
openssl-devel
openstack-keystone
postgresql-9.3.5-1PGDG.el6.mira3
postgresql-devel-9.3.5-1PGDG.el6.mira3
postgresql-libs-9.3.5-1PGDG.el6.mira3
postgresql-server-9.3.5-1PGDG.el6.mira3
os-client-config
postgresql
postgresql-devel
postgresql-libs
postgresql-server
puppet
pydot-ng
pyparsing
@ -89,23 +86,20 @@ python-alembic
python-amqp
python-amqplib
python-anyjson
python-argparse
python-appdirs
python-babel
python-backports
python-backports-ssl_match_hostname
python-beautifulsoup4
python-boto
python-ceilometerclient
python-chardet
python-cheetah
python-cherrypy
python-cinderclient
python-cliff
python-cliff-tablib
python-cmd2
python-coverage
python-crypto
python-daemon
python-daemonize
python-decorator
python-django
@ -113,21 +107,18 @@ python-docker-py
python-dogpile-cache
python-dogpile-core
python-ecdsa
python-editor
python-empy
python-ethtool
python-eventlet
python-fabric
python-flask
python-futures
python-fysom
python-gevent
python-glanceclient
python-greenlet
python-heatclient
python-html5lib
python-httplib2
python-imgcreate
python-importlib
python-ipaddr
python-ironicclient
python-iso8601
@ -141,14 +132,11 @@ python-keystoneclient
python-keystonemiddleware
python-kombu
python-ldappool
python-lockfile
python-logutils
python-lxml
python-mako
python-markdown
python-markupsafe
python-MarkupSafe
python-meld3
python-memcached
python-migrate
python-muranoclient
@ -157,11 +145,9 @@ python-netifaces
python-networkx-core
python-neutronclient
python-nose
python-nose-cover3
python-novaclient
python-oauthlib
python-openstackclient
python-ordereddict
python-oslo-config
python-oslo-db
python-oslo-i18n
@ -178,7 +164,6 @@ python-pecan
python-pip
python-ply
python-posix_ipc
python-PrettyTable
python-psycopg2
python-pycadf
python-pygments
@ -199,10 +184,10 @@ python-suds
python-swiftclient
python-tablib
python-testresources
python-unicodecsv
python-unittest2
python-urllib3
python-urwid
python-waitress
python-warlock
python-webob
python-webpy
@ -211,7 +196,6 @@ python-websockify
python-webtest
python-werkzeug
python-wsgilog
python-wsgiproxy2
python-wsgiref
python-yaql
pytz
@ -222,61 +206,49 @@ rpm
rpm-build
rsync
ruby
ruby21
ruby21-augeas
ruby21-facter
ruby21-hiera
ruby21-mcollective
ruby21-puppet
ruby21-rubygem-activesupport
ruby21-rubygem-amq-client
ruby21-rubygem-amq-protocol
ruby21-rubygem-bunny
ruby21-rubygem-i18n
ruby21-rubygem-json
ruby21-rubygem-json_pure
ruby21-rubygem-librarianp
ruby21-rubygem-librarian-puppet-simple
ruby21-rubygem-mcollective-client
ruby21-rubygem-mime-types
ruby21-rubygem-netaddr
ruby21-rubygem-net-ssh
ruby21-rubygem-net-ssh-gateway
ruby21-rubygem-net-ssh-multi
ruby21-rubygem-open4
ruby21-rubygem-openstack
ruby21-rubygem-Platform
ruby21-rubygem-raemon
ruby21-rubygem-rest-client
ruby21-rubygem-rgen
ruby21-rubygem-shadow
ruby21-rubygem-stomp
ruby21-rubygem-symboltable
ruby21-rubygem-systemu
ruby21-rubygem-thor
ruby-augeas
ruby-devel
rubygem-activesupport
rubygem-amq-protocol
rubygem-bunny
rubygem-cstruct
rubygem-deep_merge
rubygem-eventmachine
rubygem-extlib
rubygem-ffi
rubygem-ffi-yajl
rubygem-httpclient
rubygem-i18n
rubygem-ipaddress
rubygem-json
rubygem-librarian-puppet-simple
rubygem-mcollective-client
rubygem-mime-types
rubygem-minitest
rubygem-mixlib-cli
rubygem-mixlib-config
rubygem-mixlib-log
rubygem-mixlib-shellout
rubygem-netaddr
rubygem-net-ssh
rubygem-net-ssh-gateway
rubygem-net-ssh-multi
rubygem-ohai
rubygem-open4
rubygem-openstack
rubygem-Platform
rubygem-popen4
rubygem-raemon
rubygem-rdoc
rubygem-rest-client
rubygem-rethtool
rubygems
rubygem-stomp
rubygem-symboltable
rubygem-systemu
rubygem-thread_safe
rubygem-tzinfo
rubygem-wmi-lite
rubygem-yajl-ruby
ruby-irb
ruby-libs
ruby-rdoc
ruby-ri
ruby-shadow
scapy
screen
@ -285,7 +257,6 @@ selinux-policy
send2syslog
snappy
socat
subscription-manager
sudo
supervisor
syslinux
@ -294,8 +265,8 @@ tar
tftp-server
tmux
uwsgi
uwsgi-plugin-common
uwsgi-plugin-python
vim
vim-minimal
wxGTK
xinetd

View File

@ -86,11 +86,13 @@ echo 'Installing packages for Sandbox'
sudo /bin/sh -c 'export TMPDIR=$(SANDBOX)/tmp/yum TMP=$(SANDBOX)/tmp/yum; echo $(SANDBOX_PACKAGES) | xargs -n1 yum -c $(SANDBOX)/etc/yum.conf --installroot=$(SANDBOX) -y --nogpgcheck install'
mount | grep -q $(SANDBOX)/proc || sudo mount --bind /proc $(SANDBOX)/proc
mount | grep -q $(SANDBOX)/dev || sudo mount --bind /dev $(SANDBOX)/dev
#mount | grep -q $(SANDBOX)/sys || sudo mount --bind /sys $(SANDBOX)/sys
endef
define SANDBOX_DOWN
sudo umount $(SANDBOX)/proc || true
sudo umount $(SANDBOX)/dev || true
#sudo umount $(SANDBOX)/sys || true
endef
define apt_sources_list