Git Product home page Git Product logo

pieman's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pieman's Issues

Move RPi blobs to toolset

Currently the RPi blobs are fetched during every single build. Moving the blobs to toolset is one of the ways to make the process of building images more reliable since fetching the blobs from GitHub will be done once, i.e. when Pieman is installed.

Add CREATE_ONLY_CHROOT

Add the CREATE_ONLY_CHROOT parameter to make Pieman restrict itself to creating only a chroot environment. It will help to reduce the time of building images, using the BASE_DIR parameter.

Add ENABLE_DOCKER

Add the ENABLE_DOCKER parameter to install the latest Docker CE to the target system.

Allow choosing whether to use HTTPS repos or not

Only HTTP repositories should be enabled by default, because it's necessary to keep the target image as small as possible. However, users should have the possibility to switch to HTTPS repositories. I suggest we add a parameter, say ENABLE_HTTPS_REPOS, which will initiate the installation of additional packages and allow users to use encrypted repositories.

Create def_bool_var based on def_var

Create def_bool_var which will define variables and check that the assigning values are either true or false. Pieman has a bunch of parameters which are boolean, but now users may use any type of values they want, making the Pieman behaviour unpredictable.

Add parameters related to DNS

Add the following parameters related to DNS:

  • ENABLE_GOOGLE_DNS
  • ENABLE_BASIC_YANDEX_DNS
  • ENABLE_FAMILY_YANDEX_DNS
  • ENABLE_CUSTOM_DNS

ENABLE_GOOGLE_DNS will allow using the most common DNS server. If one uses the parameter, than the following two lines are added to /etc/resolv.conf

nameserver 8.8.8.8
nameserver 8.8.4.4

ENABLE_BASIC_YANDEX_DNS will allow using a quick and reliable DNS server provided by Yandex. If one uses the parameter, than the following two lines are added to /etc/resolv.conf

nameserver 77.88.8.8
nameserver 77.88.8.1

ENABLE_FAMILY_YANDEX_DNS will allow using the DNS server provided by Yandex with protection from "adult" content. If one uses the parameter, than the following two lines are added to /etc/resolv.conf

nameserver 77.88.8.7
nameserver 77.88.8.3

ENABLE_CUSTOM_DNS will allow users to add any DNS server to /etc/resolv.conf.

ubuntu-artful-arm64 build process returns Segmentation fault

Hi. I trying to build ubuntu-artful-arm64 image using next command

ALLOW_UNAUTHENTICATED=true BUILD_DIR=/build INCLUDES=vim,wireless-tools,wpasupplicant OS=ubuntu-artful-arm64  env ./pieman.sh

and that's what I see:

Full log
root@7c616d6efef2:~/pieman# ALLOW_UNAUTHENTICATED=true BUILD_DIR=/build INCLUDES=vim,wireless-tools,wpasupplicant OS=ubuntu-artful-arm64  env ./pieman.sh
+ ALLOW_UNAUTHENTICATED=true
+ BASE_DIR=
+ BUILD_DIR=/build
+ CREATE_ONLY_CHROOT=false
+ DEVICE=rpi-3-b
+ ENABLE_CUSTOM_DNS=
+ ENABLE_BASIC_YANDEX_DNS=false
+ ENABLE_FAMILY_YANDEX_DNS=false
+ ENABLE_GOOGLE_DNS=false
+ ENABLE_NONFREE=false
+ ENABLE_UNIVERSE=false
+ HOST_NAME=pieman_rpi-3-b
+ INCLUDES=vim,wireless-tools,wpasupplicant
+ OS=ubuntu-artful-arm64
+ CUSTOM_FILES=
+ PASSWORD=*****
++ uuidgen
+ PROJECT_NAME=e524728d-07a6-4caf-b2c4-960ede7e869a
+ PIEMAN_BIN=bin
++ which python3
+ PYTHON=/usr/bin/python3
+ TIME_ZONE=Etc/UTC
+ set +x
Info: using env DEBOOTSTRAP_DIR=/root/pieman/debootstrap ./debootstrap/debootstrap
gpg: keybox '/tmp/atomatically-generated-keyring.gpg' created
gpg: key 3B4FE6ACC0B21F32: public key "Ubuntu Archive Automatic Signing Key (2012) <[email protected]>" imported
gpg: Total number processed: 1
gpg:               imported: 1
gpg: no ultimately trusted keys found
Info: running bootstrap/10-rootfs-partition.sh from bootstrap
Info: BASE_DIR is not specified or does not exist. Running debootstrap to create chroot environment.
Info: cannot run anything from devices/rpi-3-b/ubuntu-artful-arm64/pre-first-stage since it does not exist.
Info: env DEBOOTSTRAP_DIR=/root/pieman/debootstrap ./debootstrap/debootstrap --arch=arm64 --foreign --variant=minbase --keyring=/tmp/atomatically-generated-keyring.gpg artful /build/e524728d-07a6-4caf-b2c4-960ede7e869a/chroot http://ports.ubuntu.com/ubuntu-ports/
I: Retrieving InRelease
I: Checking Release signature
I: Valid Release signature (key id 790BC7277767219C42C86F933B4FE6ACC0B21F32)
I: Retrieving Packages
I: Validating Packages
I: Resolving dependencies of required packages...
I: Resolving dependencies of base packages...
I: Found additional base dependencies: adduser gpgv libapt-pkg5.0 libffi6 libgmp10 libgnutls30 libhogweed4 libidn11 libnettle6 libp11-kit0 libstdc++6 libtasn1-6 ubuntu-keyring
I: Checking component main on http://ports.ubuntu.com/ubuntu-ports...
I: Retrieving adduser 3.113+nmu3ubuntu5
I: Validating adduser 3.113+nmu3ubuntu5
I: Retrieving apt 1.5
I: Validating apt 1.5
I: Retrieving base-files 9.6ubuntu102
I: Validating base-files 9.6ubuntu102
I: Retrieving base-passwd 3.5.43
I: Validating base-passwd 3.5.43
I: Retrieving bash 4.4-5ubuntu1
I: Validating bash 4.4-5ubuntu1
I: Retrieving bsdutils 1:2.30.1-0ubuntu4
I: Validating bsdutils 1:2.30.1-0ubuntu4
I: Retrieving coreutils 8.26-3ubuntu4
I: Validating coreutils 8.26-3ubuntu4
I: Retrieving dash 0.5.8-2.3ubuntu1
I: Validating dash 0.5.8-2.3ubuntu1
I: Retrieving debconf 1.5.63
I: Validating debconf 1.5.63
I: Retrieving debianutils 4.8.2
I: Validating debianutils 4.8.2
I: Retrieving diffutils 1:3.6-1
I: Validating diffutils 1:3.6-1
I: Retrieving dpkg 1.18.24ubuntu1
I: Validating dpkg 1.18.24ubuntu1
I: Retrieving e2fslibs 1.43.5-1
I: Validating e2fslibs 1.43.5-1
I: Retrieving e2fsprogs 1.43.5-1
I: Validating e2fsprogs 1.43.5-1
I: Retrieving fdisk 2.30.1-0ubuntu4
I: Validating fdisk 2.30.1-0ubuntu4
I: Retrieving findutils 4.6.0+git+20170729-2
I: Validating findutils 4.6.0+git+20170729-2
I: Retrieving gcc-7-base 7.2.0-8ubuntu3
I: Validating gcc-7-base 7.2.0-8ubuntu3
I: Retrieving gpgv 2.1.15-1ubuntu8
I: Validating gpgv 2.1.15-1ubuntu8
I: Retrieving grep 3.1-2
I: Validating grep 3.1-2
I: Retrieving gzip 1.6-5ubuntu1
I: Validating gzip 1.6-5ubuntu1
I: Retrieving hostname 3.18
I: Validating hostname 3.18
I: Retrieving init-system-helpers 1.49ubuntu1
I: Validating init-system-helpers 1.49ubuntu1
I: Retrieving libacl1 2.2.52-3build1
I: Validating libacl1 2.2.52-3build1
I: Retrieving libapt-pkg5.0 1.5
I: Validating libapt-pkg5.0 1.5
I: Retrieving libattr1 1:2.4.47-2build1
I: Validating libattr1 1:2.4.47-2build1
I: Retrieving libaudit-common 1:2.7.7-1ubuntu2
I: Validating libaudit-common 1:2.7.7-1ubuntu2
I: Retrieving libaudit1 1:2.7.7-1ubuntu2
I: Validating libaudit1 1:2.7.7-1ubuntu2
I: Retrieving libblkid1 2.30.1-0ubuntu4
I: Validating libblkid1 2.30.1-0ubuntu4
I: Retrieving libbz2-1.0 1.0.6-8.1
I: Validating libbz2-1.0 1.0.6-8.1
I: Retrieving libc-bin 2.26-0ubuntu2
I: Validating libc-bin 2.26-0ubuntu2
I: Retrieving libc6 2.26-0ubuntu2
I: Validating libc6 2.26-0ubuntu2
I: Retrieving libcap-ng0 0.7.7-3build1
I: Validating libcap-ng0 0.7.7-3build1
I: Retrieving libcomerr2 1.43.5-1
I: Validating libcomerr2 1.43.5-1
I: Retrieving libdb5.3 5.3.28-13.1
I: Validating libdb5.3 5.3.28-13.1
I: Retrieving libdebconfclient0 0.213ubuntu1
I: Validating libdebconfclient0 0.213ubuntu1
I: Retrieving libfdisk1 2.30.1-0ubuntu4
I: Validating libfdisk1 2.30.1-0ubuntu4
I: Retrieving libffi6 3.2.1-6
I: Validating libffi6 3.2.1-6
I: Retrieving libgcc1 1:7.2.0-8ubuntu3
I: Validating libgcc1 1:7.2.0-8ubuntu3
I: Retrieving libgcrypt20 1.7.8-2ubuntu1
I: Validating libgcrypt20 1.7.8-2ubuntu1
I: Retrieving libgmp10 2:6.1.2+dfsg-1
I: Validating libgmp10 2:6.1.2+dfsg-1
I: Retrieving libgnutls30 3.5.8-6ubuntu3
I: Validating libgnutls30 3.5.8-6ubuntu3
I: Retrieving libgpg-error0 1.27-3
I: Validating libgpg-error0 1.27-3
I: Retrieving libhogweed4 3.3-2
I: Validating libhogweed4 3.3-2
I: Retrieving libidn11 1.33-2
I: Validating libidn11 1.33-2
I: Retrieving liblz4-1 0.0~r131-2ubuntu2
I: Validating liblz4-1 0.0~r131-2ubuntu2
I: Retrieving liblzma5 5.2.2-1.3
I: Validating liblzma5 5.2.2-1.3
I: Retrieving libmount1 2.30.1-0ubuntu4
I: Validating libmount1 2.30.1-0ubuntu4
I: Retrieving libncurses5 6.0+20160625-1ubuntu1
I: Validating libncurses5 6.0+20160625-1ubuntu1
I: Retrieving libncursesw5 6.0+20160625-1ubuntu1
I: Validating libncursesw5 6.0+20160625-1ubuntu1
I: Retrieving libnettle6 3.3-2
I: Validating libnettle6 3.3-2
I: Retrieving libp11-kit0 0.23.7-3
I: Validating libp11-kit0 0.23.7-3
I: Retrieving libpam-modules 1.1.8-3.2ubuntu3
I: Validating libpam-modules 1.1.8-3.2ubuntu3
I: Retrieving libpam-modules-bin 1.1.8-3.2ubuntu3
I: Validating libpam-modules-bin 1.1.8-3.2ubuntu3
I: Retrieving libpam-runtime 1.1.8-3.2ubuntu3
I: Validating libpam-runtime 1.1.8-3.2ubuntu3
I: Retrieving libpam0g 1.1.8-3.2ubuntu3
I: Validating libpam0g 1.1.8-3.2ubuntu3
I: Retrieving libpcre3 2:8.39-5ubuntu3
I: Validating libpcre3 2:8.39-5ubuntu3
I: Retrieving libprocps6 2:3.3.12-1ubuntu2
I: Validating libprocps6 2:3.3.12-1ubuntu2
I: Retrieving libselinux1 2.7-1
I: Validating libselinux1 2.7-1
I: Retrieving libsemanage-common 2.7-2
I: Validating libsemanage-common 2.7-2
I: Retrieving libsemanage1 2.7-2
I: Validating libsemanage1 2.7-2
I: Retrieving libsepol1 2.7-1
I: Validating libsepol1 2.7-1
I: Retrieving libsmartcols1 2.30.1-0ubuntu4
I: Validating libsmartcols1 2.30.1-0ubuntu4
I: Retrieving libss2 1.43.5-1
I: Validating libss2 1.43.5-1
I: Retrieving libstdc++6 7.2.0-8ubuntu3
I: Validating libstdc++6 7.2.0-8ubuntu3
I: Retrieving libsystemd0 234-2ubuntu12
I: Validating libsystemd0 234-2ubuntu12
I: Retrieving libtasn1-6 4.12-2.1
I: Validating libtasn1-6 4.12-2.1
I: Retrieving libtinfo5 6.0+20160625-1ubuntu1
I: Validating libtinfo5 6.0+20160625-1ubuntu1
I: Retrieving libudev1 234-2ubuntu12
I: Validating libudev1 234-2ubuntu12
I: Retrieving libuuid1 2.30.1-0ubuntu4
I: Validating libuuid1 2.30.1-0ubuntu4
I: Retrieving login 1:4.2-3.2ubuntu4
I: Validating login 1:4.2-3.2ubuntu4
I: Retrieving lsb-base 9.20160110ubuntu5
I: Validating lsb-base 9.20160110ubuntu5
I: Retrieving mawk 1.3.3-17ubuntu2
I: Validating mawk 1.3.3-17ubuntu2
I: Retrieving mount 2.30.1-0ubuntu4
I: Validating mount 2.30.1-0ubuntu4
I: Retrieving ncurses-base 6.0+20160625-1ubuntu1
I: Validating ncurses-base 6.0+20160625-1ubuntu1
I: Retrieving ncurses-bin 6.0+20160625-1ubuntu1
I: Validating ncurses-bin 6.0+20160625-1ubuntu1
I: Retrieving passwd 1:4.2-3.2ubuntu4
I: Validating passwd 1:4.2-3.2ubuntu4
I: Retrieving perl-base 5.26.0-8ubuntu1
I: Validating perl-base 5.26.0-8ubuntu1
I: Retrieving procps 2:3.3.12-1ubuntu2
I: Validating procps 2:3.3.12-1ubuntu2
I: Retrieving sed 4.4-1
I: Validating sed 4.4-1
I: Retrieving sensible-utils 0.0.10
I: Validating sensible-utils 0.0.10
I: Retrieving sysvinit-utils 2.88dsf-59.8git1
I: Validating sysvinit-utils 2.88dsf-59.8git1
I: Retrieving tar 1.29b-2
I: Validating tar 1.29b-2
I: Retrieving ubuntu-keyring 2016.10.27
I: Validating ubuntu-keyring 2016.10.27
I: Retrieving util-linux 2.30.1-0ubuntu4
I: Validating util-linux 2.30.1-0ubuntu4
I: Retrieving zlib1g 1:1.2.11.dfsg-0ubuntu2
I: Validating zlib1g 1:1.2.11.dfsg-0ubuntu2
I: Chosen extractor for .deb packages: dpkg-deb
I: Extracting base-files...
I: Extracting base-passwd...
I: Extracting bash...
I: Extracting bsdutils...
I: Extracting coreutils...
I: Extracting dash...
I: Extracting debconf...
I: Extracting debianutils...
I: Extracting diffutils...
I: Extracting dpkg...
I: Extracting e2fslibs...
I: Extracting e2fsprogs...
I: Extracting fdisk...
I: Extracting findutils...
I: Extracting gcc-7-base...
I: Extracting grep...
I: Extracting gzip...
I: Extracting hostname...
I: Extracting init-system-helpers...
I: Extracting libacl1...
I: Extracting libattr1...
I: Extracting libaudit-common...
I: Extracting libaudit1...
I: Extracting libblkid1...
I: Extracting libbz2-1.0...
I: Extracting libc-bin...
I: Extracting libc6...
I: Extracting libcap-ng0...
I: Extracting libcomerr2...
I: Extracting libdb5.3...
I: Extracting libdebconfclient0...
I: Extracting libfdisk1...
I: Extracting libgcc1...
I: Extracting libgcrypt20...
I: Extracting libgpg-error0...
I: Extracting liblz4-1...
I: Extracting liblzma5...
I: Extracting libmount1...
I: Extracting libncurses5...
I: Extracting libncursesw5...
I: Extracting libpam-modules...
I: Extracting libpam-modules-bin...
I: Extracting libpam-runtime...
I: Extracting libpam0g...
I: Extracting libpcre3...
I: Extracting libprocps6...
I: Extracting libselinux1...
I: Extracting libsemanage-common...
I: Extracting libsemanage1...
I: Extracting libsepol1...
I: Extracting libsmartcols1...
I: Extracting libss2...
I: Extracting libsystemd0...
I: Extracting libtinfo5...
I: Extracting libudev1...
I: Extracting libuuid1...
I: Extracting login...
I: Extracting lsb-base...
I: Extracting mawk...
I: Extracting mount...
I: Extracting ncurses-base...
I: Extracting ncurses-bin...
I: Extracting passwd...
I: Extracting perl-base...
I: Extracting procps...
I: Extracting sed...
I: Extracting sensible-utils...
I: Extracting sysvinit-utils...
I: Extracting tar...
I: Extracting util-linux...
I: Extracting zlib1g...
Info: /build/e524728d-07a6-4caf-b2c4-960ede7e869a/chroot/usr/bin
Info: /usr/bin/qemu-aarch64-static
Info: cannot run anything from devices/rpi-3-b/ubuntu-artful-arm64/post-first-stage since it does not exist.
Info: running devices/rpi-3-b/ubuntu-artful-arm64/pre-second-stage/10-remove-bash-from-required.sh from devices/rpi-3-b/ubuntu-artful-arm64/pre-second-stage
Info: Run second stage
Assertion failed: start < end (/home/buildozer/aports/main/qemu/src/qemu-2.8.1/translate-all.c: page_set_flags: 2098)
./functions.sh: line 341:  7349 Segmentation fault      chroot ${R} $* 1>&2
+ rm -f /tmp/atomatically-generated-keyring.gpg
+ umount /build/e524728d-07a6-4caf-b2c4-960ede7e869a/mount_point
+ /bin/true
+ umount_required_filesystems
+ umount -l /build/e524728d-07a6-4caf-b2c4-960ede7e869a/chroot/proc
+ /bin/true
+ umount -l /build/e524728d-07a6-4caf-b2c4-960ede7e869a/chroot/sys
+ /bin/true
+ umount /build/e524728d-07a6-4caf-b2c4-960ede7e869a/chroot/dev/pts
+ /bin/true
+ umount /build/e524728d-07a6-4caf-b2c4-960ede7e869a/chroot/tmp
+ /bin/true
+ check_if_variable_is_set LOOP_DEV
+ var_name=LOOP_DEV
+ '[' -z '' ']'
+ false
+ set +x

It's happens only with --arch arm64. I tested it only in docker environment.

root@7c616d6efef2:~/pieman# chroot /build/e524728d-07a6-4caf-b2c4-960ede7e869a/chroot id
Assertion failed: start < end (/home/buildozer/aports/main/qemu/src/qemu-2.8.1/translate-all.c: page_set_flags: 2098)
Segmentation fault
root@7c616d6efef2:~/pieman#

Any ideas?

Check the toolset dependencies only if toolset is not installed

Currently Pieman checks the toolset dependencies even if toolset is installed. For example,

Info: checking Mender dependencies                                                                                                   
checking /usr/include/sys/types.h... yes                                                                                             
checking bc... yes                                                                                                                   
checking cc... yes                                                                                                                   
checking dtc... yes                                                                                                                  
checking go... yes                                                                                                                   
checking make... yes

It can be confusing.

Errors were encountered while processing: initramfs-tools

Hi,
I'm trying to install ubuntu-bionic-arm64. debootstrap is (1.0.106).
But, I go to the following error:

Setting up flash-kernel (3.90ubuntu3) ...
debconf: unable to initialize frontend: Dialog
debconf: (No usable dialog-like program is installed, so the dialog based frontend cannot be used. at /usr/share/perl5/Debconf/FrontEnd/Dialog.pm line 76.)
debconf: falling back to frontend: Readline
Creating config file /etc/default/flash-kernel with new version
Processing triggers for libc-bin (2.27-3ubuntu1) ...
Processing triggers for linux-image-4.15.0-1010-raspi2 (4.15.0-1010.11) ...
/etc/kernel/postinst.d/initramfs-tools:
update-initramfs: Generating /boot/initrd.img-4.15.0-1010-raspi2
Warning: root device does not exist
flash-kernel: deferring update (trigger activated)
/etc/kernel/postinst.d/zz-flash-kernel:
flash-kernel: deferring update (trigger activated)
Processing triggers for initramfs-tools (0.130ubuntu3) ...
update-initramfs: Generating /boot/initrd.img-4.15.0-1010-raspi2
Warning: root device does not exist
Unsupported platform.
run-parts: /etc/initramfs/post-update.d//flash-kernel exited with return code 1
dpkg: error processing package initramfs-tools (--configure):
installed initramfs-tools package post-installation script subprocess returned error exit status 1
Errors were encountered while processing:
initramfs-tools
E: Sub-process /usr/bin/dpkg returned an error code (1)
Info: build/dd1a2346-804f-42f9-b02a-3b00c0933f92/mount_point is not a mount point
Info: unmounting build/dd1a2346-804f-42f9-b02a-3b00c0933f92/chroot/proc
Info: unmounting build/dd1a2346-804f-42f9-b02a-3b00c0933f92/chroot/sys
Info: unmounting build/dd1a2346-804f-42f9-b02a-3b00c0933f92/chroot/dev/pts
Info: unmounting build/dd1a2346-804f-42f9-b02a-3b00c0933f92/chroot/dev
Info: unmounting build/dd1a2346-804f-42f9-b02a-3b00c0933f92/chroot/tmp
+++ rm -f /tmp/firstboot-dd1a2346-804f-42f9-b02a-3b00c0933f92.sh
+++ rm -f /tmp/atomatically-generated-keyring-for-dd1a2346-804f-42f9-b02a-3b00c0933f92.gpg
+++ check_if_variable_is_set LOOP_DEV
+++ var_name=LOOP_DEV
+++ '[' -z '' ']'
+++ false
+++ remove_temporary_dirs
+++ local target=build/dd1a2346-804f-42f9-b02a-3b00c0933f92
+++ rm -rf build/dd1a2346-804f-42f9-b02a-3b00c0933f92
+++ set +x

Wrong calculating of file size in du.py

It seems you have a bug in file size calculating for files bigger than block_size

elif os.path.isfile(dir_entry.path):
            file_size = os.path.getsize(dir_entry.path)
            if file_size > block_size:
                total_size += file_size

I think the total_size should be increased by size multiple of block_size.

Something like this:

total_size += math.ceil(file_size / block_size) * block_size

Add APT_PROXY parameter

Add Debian- and Ubuntu-specifc parameter APT_PROXY which will allow users to make APT use proxy to, for example, cache downloaded packages.

Add HOSTNAME

Add the HOSTNAME parameter to set up hostname.

Better messaging when toolset is ready

Replace the 'Info: exiting since PREPARE_ONLY_TOOLSET is set to true' message with 'Success: toolset is ready.' after running

sudo env PREPARE_ONLY_TOOLSET=true ./pieman.sh

Add IMAGE_ROOTFS_SIZE parameter

Right now Pieman cannot create an image with static rootfs partition size. Let's add the IMAGE_ROOTFS_SIZE parameter to change that. Let's use '0' as default value. If IMAGE_ROOTFS_SIZE is '0' everything should work exactly like now (rootfs size depends on the installed files size + ~10%)
But it the total size of all installed packages will be more than IMAGE_ROOTFS_SIZE Pieman should stop with an error message: Current rootfs size X is larger than Y, specified IMAGE_ROOTFS_SIZE. Please adjust IMAGE_ROOTFS_SIZE and try one more time.

I suggest the following description for README:

IMAGE_ROOTFS_SIZE=0

Specifies the rootfs partition size in megabytes. Beware! If rootfs doesn't fit onto that size - build will fail.

pandoc is missing when fetching pieman from PyPI

Invoking pip install pieman in the system where there is no pandoc ends up complaining

    Complete output from command python setup.py egg_info:
    Maybe try:
    
        sudo apt-get install pandoc
    See http://johnmacfarlane.net/pandoc/installing.html
    for installation options
    ---------------------------------------------------------------
    
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-install-rr1eyew4/pieman/setup.py", line 5, in <module>
        long_description = pypandoc.convert('README.md', 'rst')
      File "/home/denis/cusdeb/pieman-env/lib/python3.6/site-packages/pypandoc/__init__.py", line 69, in convert
        outputfile=outputfile, filters=filters)
      File "/home/denis/cusdeb/pieman-env/lib/python3.6/site-packages/pypandoc/__init__.py", line 260, in _convert_input
        _ensure_pandoc_path()
      File "/home/denis/cusdeb/pieman-env/lib/python3.6/site-packages/pypandoc/__init__.py", line 544, in _ensure_pandoc_path
        raise OSError("No pandoc was found: either install pandoc and add it\n"
    OSError: No pandoc was found: either install pandoc and add it
    to your PATH or or call pypandoc.download_pandoc(...) or
    install pypandoc wheels with included pandoc.

I suggest we will expand the list of the dependencies in README with pandoc.

Rewrite the logic of check_mutually_exclusive_params in Python

The logic of check_mutually_exclusive_params should be rewritten in Python, because the current logic written in Bash has a side effect (see the docstring related to the function) and it seems that it's not possible to avoid the side effect in that implementation.

Set COMPRESS_WITH_GZIP to false by default

The main motivation is adding the Mender support. The point is that Pieman is going to have a feature of building so called artifacts (.mender files) in addition to ordinary images (.img files). So, .mender files will be governed by the same rules as .img files and compressed by default. It's not desired, since the users will be forced to uncompress the file before uploading it to hosted.mender.io.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.