I am trying to get a build environment up and running on a Windows Vista box in order to see how building packages is done for Alt-F. I think I have most of it correct but when doing the ./mkinitramfs.sh
make >& build-dns323.log
make >& build-dns323.log && echo OK || echo FAILEDI have no cygwin experience, can't help.
cp .config-pkgs .config command I get stuck at the ./mkprepare.sh command since it cannot be found.
Am I doing something wrong?
Ok thanks for you answer, I took another approach and installed ubuntu on a spare machine I had. Now I managed to build the system so I started looking into the: How to create packages" Wiki. And quite soon some questions are arising.
First, I am unable to find the .config-base, .config-pkgs and .config-toolchain files When I look in the directory packages I find a config.in file, is this the confi-pkgs file? In the toolchain directory I am also able to find a config.in file.
./mkpkgs -all
I get: -bash: ./mkpkgs: No such file or directory
Am I missing something or is this a diference between building packages for RC3 and RC4 again?
On Monday, August 11, 2014 12:53:58 PM UTC+1, Wouter wrote:
Ok thanks for you answer, I took another approach and installed ubuntu on a spare machine I had. Now I managed to build the system so I started looking into the: How to create packages" Wiki. And quite soon some questions are arising.
First, I am unable to find the .config-base, .config-pkgs and .config-toolchain files When I look in the directory packages I find a config.in file, is this the confi-pkgs file? In the toolchain directory I am also able to find a config.in file.
OK, my fault.
I have just updated both the how to build RC4 and how to build packages wiki.
In short, '. exports [board]' does it all.
Thanks that worked for the build part, but when I do
./mkpkgs -all
I get: -bash: ./mkpkgs: No such file or directory
Ok that command now did work but I got errors on the pkgs directory not being available. Creating it in the place where it said it was missing did not help. So I started building the RC04 firmware again.
That went good. And then started again with the packages but now I get errors in the build phase. All refering to undefined xml references. I have libxml2-dev and libxml installed
On Tuesday, August 12, 2014 9:53:36 PM UTC+1, Wouter wrote:Ok that command now did work but I got errors on the pkgs directory not being available. Creating it in the place where it said it was missing did not help. So I started building the RC04 firmware again.hmmm, that's not as easy as it might seems.What have you exactly done? 'rm -rf build' is the sure way to go (of course *I* don't need to do that). That preserves the SVN checkout and download directory but deletes (almost) everything else.
That went good. And then started again with the packages but now I get errors in the build phase. All refering to undefined xml references. I have libxml2-dev and libxml installedThe Alt-F version has to be build first. What if you have libxml2 version x.y installed in your system and Alt-F version is version y.x? That's what I call "buildroot leaking" into the build system, and can cause issues at runtime.foomatic requires that libxml2-host to be built and installed first (at $HOSTDIR, to not contaminate your system). An incomplete install might be the reason for the build fail.Assuming you start a fresh build:-what does 'ls -ltr build/build_arm' outputs when the build fails?
-what is the output of 'echo $PATH'
-what is the output of 'ls -l $HOSTDIR/usr/lib/libxml2.*'
-what is your ubunto version? I succeed with an almost pristine Kubunto 10.04 installation.
./mkinitramfs.sh
./mkfw.sh
. exports pkgsmake saveconfig
No board configuration changes
Configuration for uClibc has changed. To examine differences use
diff ./local/pkgs/uclibc-0.9.30.3.config $BLDDIR/toolchain_build_arm/uClibc-0.9.30.3/.config
Configuration for Busybox has changed. To examine differences use
diff ./local/pkgs/busybox-1.20.2.config $BLDDIR/build_arm/busybox-1.20.2/.config
Configuration for Kernel has changed. To examine differences use
diff ./local/pkgs/linux-3.10.32.config $BLDDIR/project_build_arm/dns323/linux-3.10.32/.config
Consider making "make saveconfig" or use ". exports -f pkgs" to ignore changes.
Continue using existing .config for dns323
doing the diff's as proposed gives the following results.
diff ./local/pkgs/uclibc-0.9.30.3.config $BLDDIR/toolchain_build_arm/uClibc-0.9.30.3/.config
4c4
< # Sun Mar 16 22:38:06 2014
---
> # Wed Aug 13 08:51:01 2014
74c74
< KERNEL_HEADERS="/home/jcard/Alt-F/alt-f/build/toolchain_build_arm/linux/include"
---
> KERNEL_HEADERS="/home/wouter/alt-f-read-only/build/toolchain_build_arm/linux/include"
231c231
< CROSS_COMPILER_PREFIX="/home/jcard/Alt-F/alt-f/build/build_arm/staging_dir/usr/bin/arm-linux-uclibcgnueabi-"
---
> CROSS_COMPILER_PREFIX="/home/wouter/alt-f-read-only/build/build_arm/staging_dir/usr/bin/arm-linux-uclibcgnueabi-"
diff ./local/pkgs/busybox-1.20.2.config $BLDDIR/build_arm/busybox-1.20.2/.config
4c4
< # Sun Jun 22 17:39:50 2014
---
> # Wed Aug 13 09:17:28 2014
90c90
< CONFIG_PREFIX="/home/jcard/Alt-F/alt-f/build/project_build_arm/dns323/root"
---
> CONFIG_PREFIX="/home/wouter/alt-f-read-only/build/project_build_arm/dns323/root"
diff ./local/pkgs/linux-3.10.32.config $BLDDIR/project_build_arm/dns323/linux-3.10.32/.config
101c101
< # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
---
> CONFIG_CC_OPTIMIZE_FOR_SIZE=y
make >& build.log && echo OK || echo FAIL
OK
./mkpkg.sh -all
Creating package a2ps... skipping (not configured).
Creating package acl... skipping (not configured).
Creating package alsa-lib... skipping (not configured).
Creating package alsa-utils... skipping (not configured).
Creating package alt-f-utils... OK
Creating package apr... skipping (not configured).
Creating package apr-util... skipping (not configured).
Creating package at... OK
Creating package attr... skipping (not configured).
Creating package automatic... skipping (not configured).
Creating package avahi... skipping (not configured).
Creating package bash... skipping (not configured).
Creating package bonniepp... skipping (not configured).
Creating package bridge... skipping (not configured).
Creating package bzip2... skipping (not configured).
Creating package cadaver... skipping (not configured).
Creating package cheetah... skipping (not configured).
Creating package couchpotato2... skipping (not configured).
Creating package couchpotato... skipping (not configured).
Creating package cryptsetup... skipping (not configured).
Creating package cups... skipping (not configured).
Creating package davfs2... skipping (not configured).
Creating package db... skipping (not configured).
Creating package dbus... skipping (not configured).
Creating package dev-bundle... skipping (not configured).
Creating package dialog... skipping (not configured).
Creating package dnsmasq... OK
Creating package dosfstools... OK
Creating package dropbear... OK
Creating package e2fsprogs... OK
Creating package ethtool... skipping (not configured).
Creating package expat... skipping (not configured).
Creating package ffmpeg... skipping (not configured).
Creating package ffmpeg-libs... skipping (not configured).
Creating package ffmpegthumbnailer... skipping (not configured).
Creating package file... skipping (not configured).
Creating package flac... skipping (not configured).
Creating package flac-libs... skipping (not configured).
Creating package flex... skipping (not configured).
Creating package foomatic-db... skipping (not configured).
Creating package foomatic-filters... skipping (not configured).
Creating package forked-daapd... skipping (not configured).
Creating package fuppes... skipping (not configured).
Creating package gawk... skipping (not configured).
Creating package gdb... skipping (not configured).
Creating package gdbm... skipping (not configured).
Creating package gettext... skipping (not configured).
Creating package git... skipping (not configured).
Creating package gnupg... skipping (not configured).
Creating package gptfdisk... FAIL (failed creating gptfdisk package (./usr/sbin/cgdisk not found))
Creating package gptfdisk-sgdisk... OK (gptfdisk-sgdisk is a sub-package of gptfdisk)
Creating package groff... skipping (not configured).
Creating package gs... skipping (not configured).
Creating package hplip... skipping (not configured).
Creating package htop... skipping (not configured).
Creating package icu... skipping (not configured).
Creating package inadyn-mt... OK
Creating package iperf... skipping (not configured).
Creating package ipkg... skipping (not configured).
Creating package ipsec-tools... skipping (not configured).
Creating package iptables... skipping (not configured).
Creating package iptraf... skipping (not configured).
Creating package iscsitarget... skipping (not configured).
Creating package jpeg... skipping (not configured).
Creating package jpeg-libs... skipping (not configured).
Creating package kernel-modules... skipping (not configured).
Creating package kexec... OK
Creating package lame... skipping (not configured).
Creating package libantlr... skipping (not configured).
Creating package libavl... skipping (not configured).
Creating package libconfuse... skipping (not configured).
Creating package libcurl... skipping (not configured).
Creating package libdaemon... skipping (not configured).
Creating package libdlna... skipping (not configured).
Creating package libevent2... skipping (not configured).
Creating package libevent... skipping (not configured).
Creating package libexif... skipping (not configured).
Creating package libfuse... skipping (not configured).
Creating package libgcrypt... skipping (not configured).
Creating package libgd... skipping (not configured).
Creating package libglib12... skipping (not configured).
Creating package libglib2... skipping (not configured).
Creating package libgpg-error... skipping (not configured).
Creating package libiconv... OK
Creating package libid3tag... skipping (not configured).
Creating package libmad... skipping (not configured).
Creating package libmcrypt... skipping (not configured).
Creating package libogg... skipping (not configured).
Creating package libpar2... skipping (not configured).
Creating package libpcap... skipping (not configured).
Creating package libpng... skipping (not configured).
Creating package libsigcpp... skipping (not configured).
Creating package libtheora... skipping (not configured).
Creating package libtirpc... skipping (not configured).
Creating package libunistring... skipping (not configured).
Creating package libupnp... skipping (not configured).
Creating package libusb... skipping (not configured).
Creating package libvorbis... skipping (not configured).
Creating package libxml2... skipping (not configured).
Creating package lighttpd... skipping (not configured).
Creating package lsof... skipping (not configured).
Creating package lvm2... skipping (not configured).
Creating package lvm2-device-mapper... skipping (not configured).
Creating package lzo... skipping (not configured).
Creating package make... skipping (not configured).
Creating package mc... skipping (not configured).
Creating package mdadm... OK
Creating package mediatomb... skipping (not configured).
Creating package minidlna... skipping (not configured).
Creating package mp3gain... skipping (not configured).
Creating package mpd... skipping (not configured).
Creating package mplayer... skipping (not configured).
Creating package msmtp... OK
Creating package mt-daapd... skipping (not configured).
Creating package mtd-utils... skipping (not configured).
Creating package mxml... skipping (not configured).
Creating package nano... skipping (not configured).
Creating package ncurses... skipping (not configured).
Creating package ncurses-form... skipping (not configured).
Creating package ncurses-menu... skipping (not configured).
Creating package ncurses-panel... skipping (not configured).
Creating package neon... skipping (not configured).
Creating package netatalk2... skipping (not configured).
Creating package netatalk... skipping (not configured).
Creating package netcat... skipping (not configured).
Creating package netperf... skipping (not configured).
Creating package netsnmp... skipping (not configured).
Creating package nfs-utils... OK
Creating package nmap... skipping (not configured).
Creating package ntfs-3g... OK
Creating package ntfs-3g-ntfsprogs... skipping (not configured).
Creating package ntp... OK
Creating package nuts... skipping (not configured).
Creating package nzbget... skipping (not configured).
Creating package nzbgetweb... skipping (not configured).
Creating package openssh... FAIL (failed creating openssh package (./etc/ssh/moduli not found))
Creating package openssh-sftp... OK (openssh-sftp is a sub-package of openssh)
Creating package openssl... OK
Creating package openvpn... skipping (not configured).
Creating package owncloud... skipping (not configured).
Creating package par2cmdline... skipping (not configured).
Creating package parted... skipping (not configured).
Creating package pcre... skipping (not configured).
Creating package perl... skipping (not configured).
Creating package php... skipping (not configured).
Creating package polipo... skipping (not configured).
Creating package popt... OK
Creating package portmap... OK
Creating package pppd... skipping (not configured).
Creating package pptp... skipping (not configured).
Creating package pptpd... skipping (not configured).
Creating package pyopenssl... skipping (not configured).
Creating package python... skipping (not configured).
Creating package quota-tools... skipping (not configured).
Creating package readline... skipping (not configured).
Creating package rsnapshot... skipping (not configured).
Creating package rsync... OK
Creating package sabnzbd... skipping (not configured).
Creating package samba... skipping (not configured).
Creating package samba-doc... skipping (not configured).
Creating package samba-extra... skipping (not configured).
Creating package samba-modules... skipping (not configured).
Creating package samba-small... OK
Creating package sane... skipping (not configured).
Creating package screen... skipping (not configured).
Creating package sfdisk... OK
Creating package sickbeard... skipping (not configured).
Creating package smartmontools... OK
Creating package sqlite... skipping (not configured).
Creating package sqlite-libs... skipping (not configured).
Creating package strace... skipping (not configured).
Creating package stunnel... OK
Creating package sudo... skipping (not configured).
Creating package svn... skipping (not configured).
Creating package sysstat... skipping (not configured).
Creating package taglib... skipping (not configured).
Creating package tcpdump... skipping (not configured).
Creating package tcsh... skipping (not configured).
Creating package tiff... skipping (not configured).
Creating package transmission... skipping (not configured).
Creating package twolame... skipping (not configured).
Creating package uemacs... skipping (not configured).
Creating package unrar... skipping (not configured).
Creating package usbutils... skipping (not configured).
Creating package ushare... skipping (not configured).
Creating package vim... skipping (not configured).
Creating package vsftpd... OK
Creating package wget... OK
Creating package yenc... skipping (not configured).
Creating package zlib... OK
161 package(s) skipped.
2 package(s) FAILED.
This is how far I came untill now.27 packages created and a lot skipped because they were not configured. Any idea why the two openssh packages failed?
- "rm -rf build"
- ". exports dns323"
When I do the checks as stated in the build RC04 wiki:
in $BINARIES, the kernel, "zImage", the root filesystem image, "rootfs.arm.ext2",
and the firmware files, "Alt-F-RC4-<model>.bin" are there.
in $ROOTFS I find the directory structure used to create the
root filesystem image.
in $KERNEL I find the built linux kernel.
So except for that last line all seems to be fine, so I continue to the how to create packages part:. exports pkgs
No board configuration changes
Configuration for uClibc has changed. To examine differences use
diff ./local/pkgs/uclibc-0.9.30.3.config $BLDDIR/toolchain_build_arm/uClibc-0.9.30.3/.config
Configuration for Busybox has changed. To examine differences use
diff ./local/pkgs/busybox-1.20.2.config $BLDDIR/build_arm/busybox-1.20.2/.config
Configuration for Kernel has changed. To examine differences use
diff ./local/pkgs/linux-3.10.32.config $BLDDIR/project_build_arm/dns323/linux-3.10.32/.config
Consider making "make saveconfig" or use ". exports -f pkgs" to ignore changes.
Continue using existing .config for dns323
"Consider making "make saveconfig" or use ". exports -f pkgs" to ignore changes.
tput: unknown terminal "xterm"
tput: unknown terminal "xterm"
mkdir -p ./local/dns323
cp .config ./local/dns323/dns323.config
if ! cmp -si $(head -n 4 /home/wouter/alt-f-read-only/build/build_arm/busybox-1.20.2/.config | wc -c):$(head -n 4 "./local/pkgs/busybox-1.20.2.config" | wc -c) /home/wouter/alt-f-read-only/build/build_arm/busybox-1.20.2/.config "./local/pkgs/busybox-1.20.2.config"; then \
cp /home/wouter/alt-f-read-only/build/build_arm/busybox-1.20.2/.config "./local/pkgs/busybox-1.20.2.config"; \
fi
if ! cmp -si $(head -n 4 /home/wouter/alt-f-read-only/build/toolchain_build_arm/uClibc-0.9.30.3/.config | wc -c):$(head -n 4 "./local/pkgs/uclibc-0.9.30.3.config" | wc -c) /home/wouter/alt-f-read-only/build/toolchain_build_arm/uClibc-0.9.30.3/.config "./local/pkgs/uclibc-0.9.30.3.config"; then \
cp /home/wouter/alt-f-read-only/build/toolchain_build_arm/uClibc-0.9.30.3/.config "./local/pkgs/uclibc-0.9.30.3.config"; \
fi
if ! cmp -si $(head -n 4 /home/wouter/alt-f-read-only/build/project_build_arm/dns323/linux-3.10.32/.config | wc -c):$(head -n 4 ./local/pkgs/linux-3.10.32.config | wc -c) /home/wouter/alt-f-read-only/build/project_build_arm/dns323/linux-3.10.32/.config ./local/pkgs/linux-3.10.32.config; then \
cp /home/wouter/alt-f-read-only/build/project_build_arm/dns323/linux-3.10.32/.config ./local/pkgs/linux-3.10.32.config; \
fi
Any idea why the two openssh packages failed?
On Wednesday, August 13, 2014 8:43:28 AM UTC+2, Wouter wrote:
See inline for the answers.
On Wednesday, August 13, 2014 1:20:02 AM UTC+2, João Cardoso wrote:
On Tuesday, August 12, 2014 9:53:36 PM UTC+1, Wouter wrote:Ok that command now did work but I got errors on the pkgs directory not being available. Creating it in the place where it said it was missing did not help. So I started building the RC04 firmware again.hmmm, that's not as easy as it might seems.What have you exactly done? 'rm -rf build' is the sure way to go (of course *I* don't need to do that). That preserves the SVN checkout and download directory but deletes (almost) everything else.I deleted the whole alt-f-read-only directory and started from the beginning again.That went good. And then started again with the packages but now I get errors in the build phase. All refering to undefined xml references. I have libxml2-dev and libxml installedThe Alt-F version has to be build first. What if you have libxml2 version x.y installed in your system and Alt-F version is version y.x? That's what I call "buildroot leaking" into the build system, and can cause issues at runtime.foomatic requires that libxml2-host to be built and installed first (at $HOSTDIR, to not contaminate your system). An incomplete install might be the reason for the build fail.Assuming you start a fresh build:-what does 'ls -ltr build/build_arm' outputs when the build fails?
drwxrwxr-x 15 wouter wouter 12288 Aug 12 17:52 libxml2-2.7.8-host
drwxrwxr-x 15 wouter wouter 12288 Aug 12 17:53 libxml2-2.7.8
-what is the output of 'echo $PATH'/home/wouter/alt-f-read-only/build/build_arm/host_dir/usr/bin:/home/wouter/alt-f-read-only/build//build_arm/staging_dir/usr/bin:/bin:/usr/bin:/usr/X11R6/bin:/usr/local/bin
-what is the output of 'ls -l $HOSTDIR/usr/lib/libxml2.*'
-rw-r--r-- 1 wouter wouter 2665710 Aug 12 17:52 /home/wouter/alt-f-read-only/build/build_arm/host_dir/usr/lib/libxml2.a
-rwxr-xr-x 1 wouter wouter 1049 Aug 12 17:52 /home/wouter/alt-f-read-only/build/build_arm/host_dir/usr/lib/libxml2.la
lrwxrwxrwx 1 wouter wouter 16 Aug 12 17:52 /home/wouter/alt-f-read-only/build/build_arm/host_dir/usr/lib/libxml2.so -> libxml2.so.2.7.8
lrwxrwxrwx 1 wouter wouter 16 Aug 12 17:52 /home/wouter/alt-f-read-only/build/build_arm/host_dir/usr/lib/libxml2.so.2 -> libxml2.so.2.7.8
-rwxr-xr-x 1 wouter wouter 2056611 Aug 12 17:52 /home/wouter/alt-f-read-only/build/build_arm/host_dir/usr/lib/libxml2.so.2.7.8
It now fails at the same foomatic package. Attached are the files as requested below (i have packed them since some of them were not allowed uncompressed therefore it is in the tar).
Ok I started over again:
- rm -rf build
- . exports pkgs
- make >& build.log && echo OK || echo FAIL
It now fails at the same foomatic package. Attached are the files as requested below (i have packed them since some of them were not allowed uncompressed therefore it is in the tar).
Also, it the pkgs build stops again at the foomatic-db package, I need the contents of-build/build_arm/foomatic-db-engine-4.0.4 config.log,Makefile.in and Makefile-build/build_arm/host_dir/usr/bin/xml2-config,-the build log from the first occurrence of foomatic-db-engine-4.0.4.tar.gz on it. If you try several builds, don't overwrite the *first* pkgs log, I need the configure stepThanks
foomatic-perl-data: foomatic-perl-data.c
$(CC) $(CFLAGS) $(XML_CFLAGS) $(XML_LIBS) -o foomatic-perl-data foomatic-perl-data.c
foomatic-perl-data: foomatic-perl-data.c
$(CC) $(CFLAGS) $(XML_CFLAGS) $(XML_LIBS) -o foomatic-perl-data foomatic-perl-data.c $(XML_LIBS)
Yes that worked but now it stops at the mt-daapd-0.2.4.2 package. I have attached the part of the build2.log from where it starts with the package.
Do I need to apply the patch in a specific directory?
Index: package/multimedia/mt-daapd/mt-daapd.mk
when using the 'patch -i mt-daapd-r3028.patch' it will search that (relative) path.===================================================================--- package/multimedia/mt-daapd/mt-daapd.mk (revision 2975)+++ package/multimedia/mt-daapd/mt-daapd.mk (working copy)
Ok patching worked. Now the process stops at the pyopenssl package. See the part of the build log attached.
I applied the patch and it seems to work, now it fails at the yenc package. See attached last part of the build.log.
Make version is: GNU Make 3.81
When I do the make now it finished with an OK.
When doing "./mkpkg -all" 2 packages fail: the foomatic one (as you predicted) and nano. For nano I am trying to find out why those html files are not in the expected place.
Thanks, I already checked in the file manager which files were missing and it seemed to be the html manual pages. I will try changing the nano.mk file to see whether that solves the issue.
Edit: that doesn't work, seems like the directory "man-html" is not created.
failed creating nano package (./usr/share/nano/man-html not found)
configure:8294: checking for HTML support in groff"
GROFF_HTML_FALSE='#'GROFF_HTML_TRUE=''
One note: I think './mkpkg.sh -ls nano' shows the installed files not the missing. './mkpkgs.sh -check nano' does show the missing files.
Also in ipkgfiles/nano.control file I added ncurses to "Depends" on the third line.
You were right, I was missing the Groff package on my ubuntu system.
After installing that package I tried again, after removing the nano dir in build_arm, I retried to build but that didn't work.
I decided to start over again with a clean build directory. So removed the build dir and started over. Applied the foomatic-db patch. Then the build failed at package at-3.1.14, not sure why it failed.
I just ran a build again with build1.log and then it finished ok. When I did a ./mkpkg -all only the foomatic-db package failed. So attached an updated nano package version 2.2.6. I haven't checked if it works yet. Before I can do that I need to look into creating a feed on my home network first.Tomorrow I go on holidays for two and a half weeks therefor that will be mid September the earliest when I will look into that. Thanks for you help.