source: live-build/trunk/fuentes/scripts/build/lb_chroot_apt @ 900

Last change on this file since 900 was 900, checked in by kbut, 3 years ago

add original source

  • Property svn:executable set to *
File size: 8.6 KB
RevLine 
[900]1#!/bin/sh
2
3## live-build(7) - System Build Scripts
4## Copyright (C) 2006-2012 Daniel Baumann <daniel@debian.org>
5##
6## This program comes with ABSOLUTELY NO WARRANTY; for details see COPYING.
7## This is free software, and you are welcome to redistribute it
8## under certain conditions; see COPYING for details.
9
10
11set -e
12
13# Including common functions
14( . "${LIVE_BUILD}/scripts/build.sh" > /dev/null 2>&1 || true ) || . /usr/lib/live/build.sh
15
16# Setting static variables
17DESCRIPTION="$(Echo 'manage /etc/apt/apt.conf')"
18HELP=""
19USAGE="${PROGRAM} {install|install-binary|remove} [--force]"
20
21Arguments "${@}"
22
23# Reading configuration files
24Read_conffiles config/all config/common config/bootstrap config/chroot config/binary config/source
25Set_defaults
26
27# Requiring stage file
28Require_stagefile .build/config .build/bootstrap
29
30case "${1}" in
31        install|install-binary)
32                Echo_message "Configuring file /etc/apt/apt.conf"
33
34                # Checking stage file
35                Check_stagefile .build/chroot_apt
36
37                # Checking lock file
38                Check_lockfile .lock
39
40                # Creating lock file
41                Create_lockfile .lock
42
43                mkdir -p chroot/etc/apt/apt.conf.d
44
45                # Configuring apt ftp proxy
46                if [ -n "${LB_APT_FTP_PROXY}" ]
47                then
48                        echo "Acquire::ftp::Proxy \"${LB_APT_FTP_PROXY}\";" > chroot/etc/apt/apt.conf.d/00ftp-proxy
49                fi
50
51                # Configuring apt http proxy
52                if [ -n "${LB_APT_HTTP_PROXY}" ]
53                then
54                        echo "Acquire::http::Proxy \"${LB_APT_HTTP_PROXY}\";" > chroot/etc/apt/apt.conf.d/00http-proxy
55                fi
56
57                # Configuring apt pipeline
58                if [ -n "${LB_APT_PIPELINE}" ]
59                then
60                        echo "Acquire::http::Pipeline-Depth \"${LB_APT_PIPELINE}\";" > chroot/etc/apt/apt.conf.d/00pipeline
61                fi
62
63                # Configuring apt recommends
64                case "${LB_APT_RECOMMENDS}" in
65                        true)
66                                echo "APT::Install-Recommends \"true\";" > chroot/etc/apt/apt.conf.d/00recommends
67                                echo "Aptitude::Recommends-Important \"true\";" >> chroot/etc/apt/apt.conf.d/00recommends
68                                ;;
69
70                        false)
71                                echo "APT::Install-Recommends \"false\";" > chroot/etc/apt/apt.conf.d/00recommends
72                                echo "Aptitude::Recommends-Important \"false\";" >> chroot/etc/apt/apt.conf.d/00recommends
73                                ;;
74                esac
75
76                # Configuring apt secure
77                case "${LB_APT_SECURE}" in
78                        true)
79                                echo "APT::Get::AllowUnauthenticated \"false\";" > chroot/etc/apt/apt.conf.d/00secure
80                                echo "Aptitude::CmdLine::Ignore-Trust-Violations \"false\";" >> chroot/etc/apt/apt.conf.d/00secure
81                                ;;
82
83                        false)
84                                echo "APT::Get::AllowUnauthenticated \"true\";" > chroot/etc/apt/apt.conf.d/00secure
85                                echo "Aptitude::CmdLine::Ignore-Trust-Violations \"true\";" >> chroot/etc/apt/apt.conf.d/00secure
86                                ;;
87                esac
88
89                # Configuring apt config
90                if [ -f config/chroot_apt/apt.conf ]
91                then
92                        if [ -f chroot/etc/apt/apt.conf ]
93                        then
94                                mv chroot/etc/apt/apt.conf chroot/etc/apt/apt.conf.orig
95                        fi
96
97                        cp config/chroot_apt/apt.conf chroot/etc/apt/apt.conf
98                fi
99
100                # Configuring apt preferences
101                if [ -f config/chroot_apt/preferences ]
102                then
103                        if [ -f chroot/etc/apt/preferences ]
104                        then
105                                mv chroot/etc/apt/preferences chroot/etc/apt/preferences.orig
106                        fi
107
108                        cp config/chroot_apt/preferences chroot/etc/apt/preferences
109                fi
110
111                if Find_files config/chroot_apt/*.pref
112                then
113                        for _FILE in config/chroot_apt/*.pref
114                        do
115                                if [ -f chroot/etc/apt/preferences.d/$(basename ${_FILE}) ]
116                                then
117                                        mv chroot/etc/apt/preferences.d/$(basename ${_FILE}) chroot/etc/apt/preferences.d/$(basename ${_FILE}).orig
118                                fi
119
120                                cp -aL ${_FILE} chroot/etc/apt/preferences.d
121                        done
122                fi
123
124                if Find_files config/packages.chroot/*.deb || Find_files config/packages/*.deb
125                then
126                        echo >> chroot/etc/apt/preferences
127                        echo "# Added by lb_chroot_apt ${@}" >> chroot/etc/apt/preferences
128                        echo "Package: *" >> chroot/etc/apt/preferences
129                        echo "Pin: release o=config/packages.chroot" >> chroot/etc/apt/preferences
130
131                        case "${1}" in
132                                install)
133                                        # Ensure local packages have priority
134                                        echo "Pin-Priority: 1001" >> chroot/etc/apt/preferences
135                                        ;;
136
137                                install-binary)
138                                        # Ensure local packages are not re-installed during lb_binary
139                                        echo "Pin-Priority: 99" >> chroot/etc/apt/preferences
140
141                                        echo >> chroot/etc/apt/preferences
142                                        echo "Package: *" >> chroot/etc/apt/preferences
143                                        echo "Pin: release o=debian" >> chroot/etc/apt/preferences
144                                        echo "Pin-Priority: 99" >> chroot/etc/apt/preferences
145                                        ;;
146                        esac
147                fi
148
149                case "${LB_MODE}" in
150                        progress)
151                                if [ ! -e chroot/etc/apt/preferences.d/progress.pref ]
152                                then
153                                        _DISTRIBUTION="$(echo ${LB_DISTRIBUTION} | sed -e 's|-backports||')"
154
155                                        _ENABLE_DISTRIBUTIONS="${_DISTRIBUTION}"
156                                        _DISABLE_DISTRIBUTIONS=""
157
158                                        if [ "${LB_SECURITY}" = "true" ]
159                                        then
160                                                _ENABLE_DISTRIBUTIONS="${_ENABLE_DISTRIBUTIONS} ${_DISTRIBUTION}-security"
161                                        fi
162
163                                        if [ "${LB_VOLATILE}" = "true" ]
164                                        then
165                                                _ENABLE_DISTRIBUTIONS="${_ENABLE_DISTRIBUTIONS} ${_DISTRIBUTION}-updates"
166                                        fi
167
168                                        case "${LB_DISTRIBUTION}" in
169                                                *-backports)
170                                                        if [ "${LB_BACKPORTS}" = "true" ]
171                                                        then
172                                                                _ENABLE_DISTRIBUTIONS="${_ENABLE_DISTRIBUTIONS} ${_DISTRIBUTION}-backports"
173                                                        fi
174                                                        ;;
175
176                                                *)
177                                                        if [ "${LB_BACKPORTS}" = "true" ]
178                                                        then
179                                                                _DISABLE_DISTRIBUTIONS="${_DISABLE_DISTRIBUTIONS} ${_DISTRIBUTION}-backports"
180                                                        fi
181                                                        ;;
182                                        esac
183
184                                        for _DISTRIBUTION in ${_ENABLE_DISTRIBUTIONS}
185                                        do
186
187cat >> chroot/etc/apt/preferences.d/progress.pref << EOF
188
189Package: *
190Pin: release n=${_DISTRIBUTION}
191Pin-Priority: 999
192EOF
193
194                                        done
195
196                                        for _DISTRIBUTION in ${_DISABLE_DISTRIBUTIONS}
197                                        do
198
199cat >> chroot/etc/apt/preferences.d/progress.pref << EOF
200
201#Package: *
202#Pin: release n=${_DISTRIBUTION}
203#Pin-Priority: 999
204EOF
205
206                                        done
207
208                                        # Add temporary hack to avoid squashfs version mismatch
209                                        case "${LB_DISTRIBUTION}" in
210                                                artax-backports)
211
212cat >> chroot/etc/apt/preferences.d/progress.tmp.pref << EOF
213Package: squashfs-tools
214Pin: release n=squeeze
215Pin-Priority: 1001
216EOF
217
218                                                ;;
219                                        esac
220                                fi
221                                ;;
222                esac
223
224                # Creating stage file
225                Create_stagefile .build/chroot_apt
226                ;;
227
228        remove)
229                Echo_message "Deconfiguring file /etc/apt/apt.conf"
230
231                # Checking lock file
232                Check_lockfile .lock
233
234                # Creating lock file
235                Create_lockfile .lock
236
237                # Deconfiguring aptitude ftp proxy
238                rm -f chroot/etc/apt/apt.conf.d/00ftp-proxy
239
240                # Deconfiguring aptitude http proxy
241                rm -f chroot/etc/apt/apt.conf.d/00http-proxy
242
243                # Deconfiguring aptitude pipeline
244                rm -f chroot/etc/apt/apt.conf.d/00pipeline
245
246                # Deconfiguring aptitude recommends
247                if [ "${LB_APT_RECOMMENDS}" = "true" ]
248                then
249                        rm -f chroot/etc/apt/apt.conf.d/00recommends
250                fi
251
252                # Deconfiguring aptitude secure
253                if [ "${LB_APT_SECURE}" = "true" ]
254                then
255                        rm -f chroot/etc/apt/apt.conf.d/00secure
256                fi
257
258                # Configuring apt config
259                if [ -f config/chroot_apt/apt.conf ]
260                then
261                        if [ -f chroot/etc/apt/apt.conf ]
262                        then
263                                mv chroot/etc/apt/apt.conf chroot/etc/apt/apt.conf.orig
264                        fi
265
266                        cp config/chroot_apt/apt.conf chroot/etc/apt/apt.conf
267
268                        if [ -f chroot/etc/apt/apt.conf.orig ]
269                        then
270                                mv chroot/etc/apt/apt.conf.orig chroot/etc/apt/apt.conf
271                        fi
272                fi
273
274                # Deconfiguring apt preferences
275                if [ -f config/chroot_apt/preferences ]
276                then
277                        if [ -f chroot/etc/apt/preferences ]
278                        then
279                                mv chroot/etc/apt/preferences chroot/etc/apt/preferences.orig
280                        fi
281
282                        cp config/chroot_apt/preferences chroot/etc/apt/preferences
283
284                        if [ -f chroot/etc/apt/preferences.orig ]
285                        then
286                                mv chroot/etc/apt/preferences.orig chroot/etc/apt/preferences
287                        fi
288                fi
289
290                if Find_files config/chroot_apt/*.pref
291                then
292                        for _FILE in config/chroot_apt/*.pref
293                        do
294                                if [ -f chroot/etc/apt/preferences.d/$(basename ${_FILE}) ]
295                                then
296                                        mv chroot/etc/apt/preferences.d/$(basename ${_FILE}) chroot/etc/apt/preferences.d/$(basename ${_FILE}).orig
297                                fi
298
299                                cp -aL ${_FILE} chroot/etc/apt/preferences.d
300
301                                if [ -f chroot/etc/apt/preferences.d/$(basename ${_FILE}) ]
302                                then
303                                        mv chroot/etc/apt/preferences.d/$(basename ${_FILE}).orig chroot/etc/apt/preferences.d/$(basename ${_FILE})
304                                fi
305                        done
306                fi
307
308                if Find_files config/packages.chroot/*.deb || Find_files config/packages/*.deb
309                then
310                        if [ -f chroot/etc/apt/preferences ]
311                        then
312                                # delete additions from lb_chroot_apt install|install-binary to preferences
313                                sed -i '/# Added by lb_chroot_apt/,$d' chroot/etc/apt/preferences
314                                # delete the last empty line
315                                sed -i '${/^[[:blank:]]*$/d;}' chroot/etc/apt/preferences
316                                # if the resulting preferences file is empty there was no user additions, remove it
317                                if [ ! -s chroot/etc/apt/preferences ]
318                                then
319                                        rm -rf chroot/etc/apt/preferences
320                                fi
321                        fi
322
323                fi
324
325                # Remove temporary hack to avoid squashfs version mismatch for artax-backports
326                rm -f chroot/etc/apt/preferences.d/progress.tmp.pref
327
328                # Removing stage file
329                rm -f .build/chroot_apt
330                ;;
331
332        *)
333                Usage
334                ;;
335esac
Note: See TracBrowser for help on using the repository browser.