1 | #! /bin/sh |
---|
2 | set -e |
---|
3 | |
---|
4 | rm -rf config |
---|
5 | |
---|
6 | echo "Building on $(hostname --fqdn)" |
---|
7 | |
---|
8 | #Sanity checks |
---|
9 | if [ -z $FLAVOUR ]; then |
---|
10 | echo "\n****************** ERROR ************************************************\n" |
---|
11 | echo "\tFLAVOUR enviroment variable is not defined. Please indicate this variable" |
---|
12 | echo "\n*************************************************************************\n" |
---|
13 | exit 0 |
---|
14 | fi |
---|
15 | |
---|
16 | if [ -z $ARCH ]; then |
---|
17 | echo "\n****************** ERROR ************************************************\n" |
---|
18 | echo "\tARCH enviroment variable is not defined. Please indicate this variable" |
---|
19 | echo "\n*************************************************************************\n" |
---|
20 | exit 0 |
---|
21 | fi |
---|
22 | |
---|
23 | |
---|
24 | SUITE=${SUITE:="xenial"} |
---|
25 | |
---|
26 | MIRROR=${MIRROR:="http://lliurex.net/$SUITE"} |
---|
27 | |
---|
28 | MIRRORDEFAULT=${MIRRORDEFAULT:="http://lliurex.net/$SUITE"} |
---|
29 | |
---|
30 | BINARYFORMAT=${BINARYFORMAT:="iso-hybrid"} |
---|
31 | |
---|
32 | ISO_VOLUME="LliureX ${FLAVOUR} $(date +%Y%m%d-%H:%M)" |
---|
33 | |
---|
34 | SYSLINUX_THEME=${SYSLINUX_THEME:="ubuntu-xenial-lliurex"} |
---|
35 | |
---|
36 | COMPONENTS="main restricted universe multiverse" |
---|
37 | |
---|
38 | BINARY_REMOVE_LINUX=: |
---|
39 | |
---|
40 | MEMTEST=none |
---|
41 | SOURCE='--source false' |
---|
42 | BOOTLOADER=none |
---|
43 | BOOTAPPEND_LIVE= |
---|
44 | LIVE_TASK= |
---|
45 | |
---|
46 | CHROOT_HOOKS= |
---|
47 | BINARY_HOOKS= |
---|
48 | |
---|
49 | OPTS= |
---|
50 | |
---|
51 | mkdir -p config/package-lists |
---|
52 | |
---|
53 | add_package () |
---|
54 | { |
---|
55 | local pass="$1" |
---|
56 | shift |
---|
57 | local pkg |
---|
58 | |
---|
59 | for pkg; do |
---|
60 | echo "$pkg" >> "config/package-lists/livecd-rootfs.list.chroot_$pass" |
---|
61 | done |
---|
62 | } |
---|
63 | |
---|
64 | add_chroot_hook () |
---|
65 | { |
---|
66 | CHROOT_HOOKS="${CHROOT_HOOKS:+$CHROOT_HOOKS }$1" |
---|
67 | } |
---|
68 | |
---|
69 | add_binary_hook () |
---|
70 | { |
---|
71 | BINARY_HOOKS="${BINARY_HOOKS:+$BINARY_HOOKS }$1" |
---|
72 | } |
---|
73 | |
---|
74 | case $IMAGEFORMAT in |
---|
75 | ext2|ext3|ext4) |
---|
76 | OPTS="${OPTS:+$OPTS }--initramfs none --chroot-filesystem $IMAGEFORMAT" |
---|
77 | PREINSTALLED=true |
---|
78 | case $SUBPROJECT in |
---|
79 | wubi) |
---|
80 | add_package install lupin-support |
---|
81 | COMPONENTS='main restricted universe multiverse' |
---|
82 | ;; |
---|
83 | *) |
---|
84 | case $PROJECT in |
---|
85 | ubuntu-cpc) |
---|
86 | ;; |
---|
87 | *) |
---|
88 | add_package live jasper |
---|
89 | ;; |
---|
90 | esac |
---|
91 | ;; |
---|
92 | esac |
---|
93 | ;; |
---|
94 | |
---|
95 | plain) |
---|
96 | OPTS="${OPTS:+$OPTS }--initramfs none --chroot-filesystem $IMAGEFORMAT" |
---|
97 | PREINSTALLED=true |
---|
98 | ;; |
---|
99 | |
---|
100 | *) |
---|
101 | case $PROJECT in |
---|
102 | ubuntu-server|ubuntu-touch|ubuntu-pd) |
---|
103 | ;; |
---|
104 | *) |
---|
105 | add_package live lupin-casper |
---|
106 | ;; |
---|
107 | esac |
---|
108 | ;; |
---|
109 | esac |
---|
110 | |
---|
111 | case $BINARYFORMAT in |
---|
112 | iso*|usb*) |
---|
113 | BINARY_IMAGES="$BINARYFORMAT" |
---|
114 | MEMTEST=memtest86+ |
---|
115 | BOOTLOADER=syslinux |
---|
116 | OPTS="${OPTS:+$OPTS }--zsync=false" |
---|
117 | ;; |
---|
118 | esac |
---|
119 | |
---|
120 | add_package live lliurex-meta-live |
---|
121 | |
---|
122 | case $ARCH in |
---|
123 | amd64) add_package live linux-signed-generic ;; |
---|
124 | esac |
---|
125 | # add_chroot_hook remove-gnome-icon-cache |
---|
126 | |
---|
127 | |
---|
128 | add_chroot_hook update-apt-file-cache |
---|
129 | add_chroot_hook update-apt-xapian-index |
---|
130 | add_chroot_hook update-mlocate-database |
---|
131 | add_chroot_hook remove-dbus-machine-id |
---|
132 | add_chroot_hook remove-openssh-server-host-keys |
---|
133 | add_chroot_hook remove-udev-persistent-rules |
---|
134 | add_chroot_hook remove-python-py |
---|
135 | |
---|
136 | lb config noauto \ |
---|
137 | --architecture "$ARCH" \ |
---|
138 | --mode ubuntu \ |
---|
139 | --distribution "$SUITE" \ |
---|
140 | --bootstrap-keyring ubuntu-keyring \ |
---|
141 | --binary-images "$BINARY_IMAGES" \ |
---|
142 | --memtest "$MEMTEST" \ |
---|
143 | $SOURCE \ |
---|
144 | --build-with-chroot false \ |
---|
145 | ${MIRROR:+--parent-mirror-bootstrap $MIRROR} \ |
---|
146 | ${MIRROR:+--parent-mirror-chroot-volatile $MIRROR} \ |
---|
147 | ${MIRROR:+--parent-mirror-chroot-security $MIRROR} \ |
---|
148 | ${MIRROR:+--parent-mirror-binary $MIRRORDEFAULT} \ |
---|
149 | ${MIRROR:+--parent-mirror-binary-security $MIRRORDEFAULT} \ |
---|
150 | ${MIRROR:+--parent-mirror-binary-volatile $MIRRORDEFAULT} \ |
---|
151 | ${MIRROR:+--mirror-bootstrap $MIRROR} \ |
---|
152 | ${MIRROR:+--mirror-chroot-volatile $MIRROR} \ |
---|
153 | ${MIRROR:+--mirror-chroot-security $MIRROR} \ |
---|
154 | ${MIRROR:+--mirror-binary $MIRRORDEFAULT} \ |
---|
155 | ${MIRROR:+--mirror-binary-security $MIRRORDEFAULT} \ |
---|
156 | ${MIRROR:+--mirror-binary-volatile $MIRRORDEFAULT} \ |
---|
157 | ${COMPONENTS:+--parent-archive-areas "$COMPONENTS"} \ |
---|
158 | --apt-source-archives false \ |
---|
159 | ${KERNEL_FLAVOURS:+--linux-flavours "$KERNEL_FLAVOURS"} \ |
---|
160 | ${KERNEL_PACKAGES:+--linux-packages "$KERNEL_PACKAGES"} \ |
---|
161 | --initsystem none \ |
---|
162 | --bootloader "$BOOTLOADER" \ |
---|
163 | --initramfs-compression lzma \ |
---|
164 | --syslinux-theme $SYSLINUX_THEME\ |
---|
165 | --iso-volume "$ISO_VOLUME" \ |
---|
166 | --apt-secure false \ |
---|
167 | --keyring-packages lliurex-keyring \ |
---|
168 | ${BOOTAPPEND_LIVE:+--bootappend-live "$BOOTAPPEND_LIVE"} \ |
---|
169 | $OPTS \ |
---|
170 | "$@" |
---|
171 | |
---|
172 | case $ARCH in |
---|
173 | amd64) sed -i -e 's%^\(LB_BOOTSTRAP_INCLUDE=".*\)"$%\1 enableri386"%g' config/bootstrap ;; |
---|
174 | esac |
---|
175 | |
---|
176 | echo "LB_CHROOT_HOOKS=\"$CHROOT_HOOKS\"" >> config/chroot |
---|
177 | echo "LB_BINARY_HOOKS=\"$BINARY_HOOKS\"" >> config/binary |
---|
178 | echo "BUILDSTAMP=\"$NOW\"" >> config/binary |
---|
179 | |
---|
180 | |
---|
181 | if $BINARY_REMOVE_LINUX; then |
---|
182 | cat > config/binary_rootfs/excludes << EOF |
---|
183 | boot/vmlinu?-* |
---|
184 | boot/initrd.img-* |
---|
185 | EOF |
---|
186 | fi |
---|
187 | |
---|
188 | rsync -ax --ignore-existing /usr/share/lliurex-maker/configuration/common/* config/ || true |
---|
189 | rsync -ax --ignore-existing /usr/share/lliurex-maker/configuration/$FLAVOUR/* config/ || true |
---|
190 | rsync -ax --ignore-existing /usr/share/lliurex-preseed/common/lliurex-all config/preseed/lliurex-all.preseed.chroot |
---|
191 | |
---|
192 | echo 'MKSQUASHFS_OPTIONS="${MKSQUASHFS_OPTIONS} -comp xz"' >> config/all |
---|
193 | #cp config/final_apt/preferences.d/* config/includes.chroot/usr/share/lliurex-up/includes/etc/apt/preferences.d |
---|
194 | if [ -e "config/extramirrors" ]; then |
---|
195 | find config/extramirrors -type f -exec cat {} >> config/archives/extra-ppas.list.chroot \; |
---|
196 | fi |
---|