Hello again,

I would still favor the simplicity of just rebuilding on failure, without all 
the extra per package complexity. Paired with a small TMPFS size you already 
gain most, by quickly failing during unpacking, and thus end up building too 
large packages "on the disk".

I also think this does not belong to the config, a more suitable design would 
be to store the size in the .cache file along relative build time and such, 
this way everyone has known good estimates in each package.

But then again, for future maintainability I would rather keep the T2 scripts 
lean and clean, without (too many) complex, rarely used corner case options and 
thus just merge the rebuild on error mentioned above together with decreasing 
the default tmpfs size to just 128 or 256 MB.

        René

On 25.08.2011, at 14:58, Mika N wrote:

> >Rene Rebe wrote:
> >Thanks, Mika, for resending the patch. I remember I liked the idea back in 
> >the day you first submitted this back in 2009.
> >The option parsing is a little fragile, and I assume one would get the best 
> >of both worlds using a small tmpfs by default (100MB or so), to compile like 
> >>90% of the packages >with tmpfs, and have big packages fail even during 
> >unpacking, quickly.
> 
> Yes, I agree that TMPFS_OPTION parsing is very fragile if one makes slight 
> changes in the syntax of that option. I couldn't come up with foolproof 
> parsing logic.
>  
> The script needs to know only the max size of TMPFS option, so how about if 
> T2 configurator would split TMPFS_OPTION in two parts where size would be own 
> variable. The current TMPFS_OPTION would have a "size stub variable name" 
> which is replaced at runtime with the actual numerical size value from the 
> new option. And the new variable would be forced to use M bytes value, so 
> Build-Pkg wouldn't have to try to guess whether the value is mega or giga or 
> byte.
>  
> This way we could get rid of fragile size parsing from the TMPFS_OPTION 
> string part of the original patch. I also realized that my orignal script 
> should have listed config/buildir_pkgsize file in scripts/Build-Tool script 
> in a part where is looks for "new/updated" files. This cache file should not 
> listed as updated file and causing re-syncing of configuration.
>  
> Anyway, if splitting TMPFS_OPTION in half doesnt sound good then use of 
> smaller TMPFS with automagical re-try logic would be second best option and 
> foolproof.
>  
> As a nice-to-see I have attached here list of pkg sizes from default 
> "50-xorg-desktop" build for X86 platform. As you can see most packages would 
> fit in 800MB TMPFS and only 5 packages would be bigger.
>  
> Best regards,
>  Mika N
>  
>  
> -------------
> builddir_pkgsize:
> 0 00-dirtree 1M
> 1 00-dirtree 1M
> 1 disktype 1M
> 1 minised 1M
> 1 mktemp 1M
> 1 rocknet 1M
> 1 stone 1M
> 1 time 1M
> 3 mktemp 1M
> 3 sysklogd 1M
> 5 00-dirtree 1M
> 5 automoc4 1M
> 5 bdftopcf 1M
> 5 bigreqsproto 1M
> 5 bitstream-vera-fonts 1M
> 5 compositeproto 1M
> 5 damageproto 1M
> 5 disktype 1M
> 5 dmxproto 1M
> 5 dri2proto 1M
> 5 evieext 1M
> 5 fixesproto 1M
> 5 fontcacheproto 1M
> 5 font-cursor-misc 1M
> 5 font-dec-misc 1M
> 5 font-micro-misc 1M
> 5 font-screen-cyrillic 1M
> 5 font-winitzki-cyrillic 1M
> 5 font-xfree86-type1 1M
> 5 freefonts 1M
> 5 gccmakedep 1M
> 5 ipconfig 1M
> 5 kbproto 1M
> 5 libcap 1M
> 5 mkfontdir 1M
> 5 mktemp 1M
> 5 mmv 1M
> 5 ncompress 1M
> 5 netkit-base 1M
> 5 netkit-rsh 1M
> 5 pcmciautils 1M
> 5 perl-gettext 1M
> 5 portmap 1M
> 5 procinfo 1M
> 5 renderproto 1M
> 5 resourceproto 1M
> 5 rman 1M
> 5 scrnsaverproto 1M
> 5 time 1M
> 5 trapproto 1M
> 5 videoproto 1M
> 5 vlock 1M
> 5 xcmiscproto 1M
> 5 xf86bigfontproto 1M
> 5 xf86dgaproto 1M
> 5 xf86driproto 1M
> 5 xf86miscproto 1M
> 5 xf86rushproto 1M
> 5 xf86vidmodeproto 1M
> 5 xineramaproto 1M
> 5 xproxymanagementprotocol 1M
> 5 xsetmode 1M
> 5 xsetpointer 1M
> 0 squashfs-tools 2M
> 1 fget 2M
> 1 squashfs-tools 2M
> 1 sysfiles 2M
> 1 sysvinit 2M
> 3 cron 2M
> 3 hdparm 2M
> 3 sysfiles 2M
> 5 docbookx 2M
> 5 ed 2M
> 5 eject 2M
> 5 embutils 2M
> 5 fget 2M
> 5 font-adobe-utopia-type1 2M
> 5 font-alias 2M
> 5 font-arabic-misc 2M
> 5 font-bh-ttf 2M
> 5 font-bitstream-type1 2M
> 5 font-ibm-type1 2M
> 5 font-misc-cyrillic 2M
> 5 font-sony-misc 2M
> 5 fontsproto 2M
> 5 font-sun-misc 2M
> 5 font-util 2M
> 5 fslsfonts 2M
> 5 fstobdf 2M
> 5 glproto 2M
> 5 help2man 2M
> 5 iceauth 2M
> 5 imake 2M
> 5 inputproto 2M
> 5 intltool 2M
> 5 libpthread-stubs 2M
> 5 makedepend 2M
> 5 minised 2M
> 5 mkfontscale 2M
> 5 netkit-telnet 2M
> 5 perl-xml-parser 2M
> 5 qimageblitz 2M
> 5 randrproto 2M
> 5 recordproto 2M
> 5 rgb 2M
> 5 setxkbmap 2M
> 5 squashfs-tools 2M
> 5 sysvinit 2M
> 5 tcp_wrappers 2M
> 5 wireless-tools 2M
> 5 xauth 2M
> 5 xbitmaps 2M
> 5 xcb-proto 2M
> 5 xconsole 2M
> 5 xcursorgen 2M
> 5 xdpyinfo 2M
> 5 xev 2M
> 5 xextproto 2M
> 5 xhost 2M
> 5 xinit 2M
> 5 xkill 2M
> 5 xmag 2M
> 5 xrandr 2M
> 5 xrdb 2M
> 5 xset 2M
> 5 xsetroot 2M
> 5 xsm 2M
> 5 xtrans 2M
> 5 xwininfo 2M
> 7 sysfiles 2M
> 0 ccache 3M
> 1 embutils 3M
> 1 ethtool 3M
> 3 procps 3M
> 5 ccache 3M
> 5 cf 3M
> 5 dvb-apps 3M
> 5 ethtool 3M
> 5 font-bh-type1 3M
> 5 font-mutt-misc 3M
> 5 font-schumacher-misc 3M
> 5 hfsutils 3M
> 5 less 3M
> 5 libdmx 3M
> 5 libfontenc 3M
> 5 liboldx 3M
> 5 libsm 3M
> 5 libusb-compat 3M
> 5 libxau 3M
> 5 libxcomposite 3M
> 5 libxcursor 3M
> 5 libxdamage 3M
> 5 libxdmcp 3M
> 5 libxevie 3M
> 5 libxfixes 3M
> 5 libxfontcache 3M
> 5 libxinerama 3M
> 5 libxkbui 3M
> 5 libxprintapputil 3M
> 5 libxprintutil 3M
> 5 libxrandr 3M
> 5 libxrender 3M
> 5 libxres 3M
> 5 libxscrnsaver 3M
> 5 libxtrap 3M
> 5 libxtst 3M
> 5 libxvmc 3M
> 5 libxxf86dga 3M
> 5 libxxf86misc 3M
> 5 libxxf86vm 3M
> 5 man 3M
> 5 net-tools 3M
> 5 patch 3M
> 5 pciutils 3M
> 5 printproto 3M
> 5 twm 3M
> 5 xf86-input-evdev 3M
> 5 xf86-input-mouse 3M
> 5 xf86-input-vmmouse 3M
> 5 xf86-video-dummy 3M
> 5 xf86-video-v4l 3M
> 5 xf86-video-vesa 3M
> 5 xkbcomp 3M
> 5 xproto 3M
> 0 pkgconfig 4M
> 1 bzip2 4M
> 1 ccache 4M
> 1 dialog 4M
> 1 less 4M
> 1 man 4M
> 1 modutils 4M
> 1 net-tools 4M
> 1 patch 4M
> 1 pdksh 4M
> 1 pkgconfig 4M
> 1 procps 4M
> 1 psmisc 4M
> 3 modutils 4M
> 5 aufs3 4M
> 5 bzip2 4M
> 5 dialog 4M
> 5 font-cronyx-cyrillic 4M
> 5 libfs 4M
> 5 libice 4M
> 5 libogg 4M
> 5 libpciaccess 4M
> 5 libusb 4M
> 5 libxft 4M
> 5 libxkbfile 4M
> 5 libxp 4M
> 5 pdksh 4M
> 5 pkgconfig 4M
> 5 psmisc 4M
> 5 xaw3d 4M
> 5 xf86-input-synaptics 4M
> 5 xf86-video-vmware 4M
> 0 libidl 5M
> 1 popt 5M
> 1 unionfs 5M
> 1 zlib 5M
> 3 zlib 5M
> 5 attica 5M
> 5 expat 5M
> 5 font-bitstream 5M
> 5 font-jis-misc 5M
> 5 libart 5M
> 5 libgpg-error 5M
> 5 libidl 5M
> 5 libmad 5M
> 5 libpcap 5M
> 5 libxext 5M
> 5 libxmu 5M
> 5 libxpm 5M
> 5 popt 5M
> 5 ppp 5M
> 5 twolame 5M
> 5 unionfs 5M
> 0 mine 6M
> 0 module-init-tools 6M
> 0 mpc 6M
> 1 mine 6M
> 1 module-init-tools 6M
> 3 module-init-tools 6M
> 5 gle 6M
> 5 iproute2 6M
> 5 libffi 6M
> 5 libungif 6M
> 5 libxv 6M
> 5 mine 6M
> 5 reiserfsprogs 6M
> 5 screen 6M
> 5 strace 6M
> 5 sysfsutils 6M
> 5 usbutils 6M
> 5 xdm 6M
> 1 strace 7M
> 1 zip 7M
> 3 mpc 7M
> 5 alsa-utils 7M
> 5 font-daewoo-misc 7M
> 5 font-isas-misc 7M
> 5 jfsutils 7M
> 5 libdrm 7M
> 5 libtirpc 7M
> 5 libxi 7M
> 5 mpc 7M
> 5 rsync 7M
> 5 taglib 7M
> 5 x264 7M
> 5 xterm 7M
> 5 zip 7M
> 0 bin86 8M
> 0 file 8M
> 1 mpc 8M
> 1 udev 8M
> 3 bin86 8M
> 3 nvi 8M
> 5 audiofile 8M
> 5 file 8M
> 5 gtkdoc 8M
> 5 libjpeg 8M
> 5 libnotify 8M
> 5 libpng 8M
> 5 libxfont 8M
> 5 neon 8M
> 5 udev 8M
> 0 autoconf 9M
> 0 automake 9M
> 0 unzip 9M
> 1 autoconf 9M
> 1 automake 9M
> 1 file 9M
> 1 nvi 9M
> 1 unzip 9M
> 3 autoconf 9M
> 3 automake 9M
> 5 apr-util 9M
> 5 autoconf 9M
> 5 automake 9M
> 5 dbus-glib 9M
> 5 freeglut 9M
> 5 gpm 9M
> 5 gzip 9M
> 5 iptables 9M
> 5 lcms 9M
> 5 libmng 9M
> 5 make 9M
> 5 pixman 9M
> 5 sed 9M
> 5 shared-mime-info 9M
> 5 unzip 9M
> 5 xf86-video-radeonhd 9M
> 0 dietlibc 10M
> 0 flex 10M
> 0 nasm 10M
> 1 gzip 10M
> 1 make 10M
> 1 readline 10M
> 1 rsync 10M
> 1 sed 10M
> 5 atk 10M
> 5 flex 10M
> 5 libgd 10M
> 5 nasm 10M
> 5 nfs-utils 10M
> 5 ntfs-3g 10M
> 5 ntfsprogs 10M
> 5 pcre 10M
> 5 readline 10M
> 5 sqlite 10M
> 5 sudo 10M
> 1 flex 11M
> 5 faad 11M
> 5 lame 11M
> 5 wpa_supplicant 11M
> 5 xkeyboard-config 11M
> 0 cloog-ppl 12M
> 0 gzip 12M
> 3 cloog-ppl 12M
> 5 cloog-ppl 12M
> 5 cpio 12M
> 5 faac 12M
> 5 libtheora 12M
> 5 libxaw 12M
> 5 libxcb 12M
> 5 libxt 12M
> 5 xcursor-themes 12M
> 5 fontconfig 13M
> 5 grub 13M
> 5 kbd 13M
> 5 xf86-video-ati 13M
> 0 libtool 14M
> 1 cpio 14M
> 1 grub 14M
> 3 libtool 14M
> 5 apr 14M
> 5 libtiff 14M
> 5 libtool 14M
> 5 man-pages 14M
> 0 mpfr 15M
> 1 libtool 15M
> 5 alsa-lib 15M
> 5 diffutils 15M
> 5 grep 15M
> 5 libgcrypt 15M
> 5 wget 15M
> 0 cpio 16M
> 0 m4 16M
> 5 font-bh-lucidatypewriter 16M
> 5 gawk 16M
> 5 m4 16M
> 5 openssh 16M
> 1 diffutils 17M
> 1 gawk 17M
> 1 wget 17M
> 5 cdrkit 17M
> 5 cvs 17M
> 5 freetype 17M
> 5 libva 17M
> 1 grep 18M
> 1 m4 18M
> 3 dietlibc 18M
> 3 mpfr 18M
> 3 texinfo 18M
> 5 findutils 18M
> 5 mpfr 18M
> 1 dietlibc 19M
> 5 gdk-pixbuf 19M
> 5 libvorbis 19M
> 5 xfsprogs 19M
> 5 yasm 19M
> 1 findutils 20M
> 5 dbus 20M
> 5 pam 20M
> 1 mpfr 21M
> 5 cracklib 21M
> 5 libcdio 21M
> 5 mercurial 21M
> 0 findutils 22M
> 1 pam 22M
> 5 flac 22M
> 5 font-adobe-utopia 22M
> 1 texinfo 23M
> 3 bison 23M
> 3 shadow 23M
> 5 pango 23M
> 5 shadow 23M
> 5 tar 24M
> 5 gobject-introspection 25M
> 5 strigi 25M
> 5 vdrdev 25M
> 1 bison 26M
> 3 parted 26M
> 1 shadow 27M
> 5 cdrdao 27M
> 0 tar 28M
> 1 tar 28M
> 5 gnupg 28M
> 1 groff 29M
> 0 gmp 30M
> 3 gmp 30M
> 5 curl 30M
> 5 gmp 30M
> 5 syslinux 30M
> 7 curl 30M
> 5 libxslt 31M
> 3 e2fsprogs 32M
> 5 tcl 32M
> 0 tcl 33M
> 1 gmp 33M
> 1 curl 34M
> 1 e2fsprogs 35M
> 3 bash 35M
> 5 font-misc-misc 36M
> 5 netpbm 36M
> 5 groff 37M
> 1 bash 38M
> 5 git 38M
> 5 gpac 38M
> 3 ncurses 40M
> 5 libgphoto 40M
> 3 util-linux 42M
> 5 openssl 42M
> 1 util-linux 49M
> 5 mesa-demos 49M
> 5 ffmpeg 50M
> 5 libx11 51M
> 1 ncurses 56M
> 5 font-bh 56M
> 5 libxml 58M
> 5 sane-backends 60M
> 5 cairo 61M
> 3 coreutils 64M
> 5 coreutils 64M
> 5 gnutls 71M
> 1 coreutils 74M
> 5 subversion 75M
> 5 dhcp 78M
> 5 xine-lib 80M
> 5 python 83M
> 5 xorg-server 84M
> 5 glib 90M
> 0 cmake 94M
> 5 cmake 94M
> 5 font-adobe 94M
> 3 ppl 98M
> 5 ppl 98M
> 0 ppl 99M
> 0 gettext 104M
> 6 gettext 104M
> 3 gettext 107M
> 1 gettext 117M
> 0 glib 122M
> 5 bdb 131M
> 1 glib 138M
> 0 glibc 139M
> 2 perl 158M
> 5 perl 158M
> 5 qt 164M
> 3 gdb 184M
> 2 binutils 186M
> 5 binutils 186M
> 0 binutils 190M
> 1 binutils 192M
> 5 gtk+ 231M
> 5 mesa 235M
> 5 glibc 277M
> 5 samba 297M
> 1 glibc 300M
> 0 linux-header 475M
> 1 linux-header 475M
> 0 gcc 715M
> 1 gcc 749M
> 5 firefox 1056M
> 5 qt4 1488M
> 5 gcc 1514M
> 2 gcc 1574M
> 5 linux26 1848M
> 
> ----------------------------------------------------------- 
> If you wish to unsubscribe from this mailing, send mail to
> [email protected] with a subject of: unsubscribe t2

-- 
  René Rebe, ExactCODE GmbH, Jaegerstr. 67, DE-10117 Berlin
  http://exactcode.com | http://t2-project.org | http://rene.rebe.de

----------------------------------------------------------- 
If you wish to unsubscribe from this mailing, send mail to
[email protected] with a subject of: unsubscribe t2

Reply via email to