source: live-build/trunk/fuentes/scripts/build/lb_binary_package-lists @ 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: 4.0 KB
Line 
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 'install local packages into binary')"
18HELP=""
19USAGE="${PROGRAM} [--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
27Echo_message "Begin installing local package lists..."
28
29# Requiring stage file
30Require_stagefile .build/config .build/bootstrap
31
32# Checking stage file
33Check_stagefile .build/binary_package-lists
34
35# Checking lock file
36Check_lockfile .lock
37
38# Creating lock file
39Create_lockfile .lock
40
41if ls config/package-lists/*.list > /dev/null 2>&1 || \
42   ls config/package-lists/*.list.binary > /dev/null 2>&1
43then
44        case "${LB_BUILD_WITH_CHROOT}" in
45                true)
46                        # Restoring cache
47                        Restore_cache cache/packages.chroot
48
49                        # Check depends
50                        Check_package chroot/usr/bin/apt-ftparchive apt-utils
51                        Check_package chroot/usr/bin/grep-aptavail dctrl-tools
52
53                        # Installing depends
54                        Install_package
55                        ;;
56
57                false)
58                        if [ ! -e /usr/bin/apt-ftparchive ]; then
59                                # apt-utils
60                                Echo_error "/usr/bin/apt-ftparchive - no such file."
61                                exit 1
62                        fi
63
64                        if [ ! -e /usr/bin/grep-aptavail ]; then
65                                # dctrl-tools
66                                Echo_error "/usr/bin/grep-aptavail - no such file."
67                                exit 1
68                        fi
69                        ;;
70        esac
71
72        if [ -e "${LIVE_BUILD}/share/bin/Packages" ]
73        then
74                cp "${LIVE_BUILD}/share/bin/Packages" chroot/bin
75        else
76                cp /usr/share/live/build/bin/Packages chroot/bin
77        fi
78
79        mkdir -p chroot/binary.deb/archives/partial
80        mv chroot/var/lib/dpkg/status chroot/var/lib/dpkg/status.tmp
81        touch chroot/var/lib/dpkg/status
82
83        for LIST in config/package-lists/*.list \
84                    config/package-lists/*.list.binary
85        do
86                if [ -e "${LIST}" ]
87                then
88                        # Generate package list
89                        Expand_packagelist "${LIST}" "config/package-lists" > chroot/root/"$(basename ${LIST})"
90
91                        # Downloading additional packages
92                        Chroot chroot "xargs --arg-file=/root/$(basename ${LIST}) apt-get ${APT_OPTIONS} -o Dir::Cache=/binary.deb --download-only install"
93
94                        # Remove package list
95                        rm chroot/root/"$(basename ${LIST})"
96                fi
97        done
98
99        for FILE in chroot/binary.deb/archives/*.deb
100        do
101                SOURCE="$(dpkg -f ${FILE} Source | awk '{ print $1 }')"
102                SECTION="$(dpkg -f ${FILE} Section | awk '{ print $1 }')"
103
104                if [ -z "${SOURCE}" ]
105                then
106                        SOURCE="$(basename ${FILE} | awk -F_ '{ print $1 }')"
107                fi
108
109                case "${SOURCE}" in
110                        lib?*)
111                                LETTER="$(echo ${SOURCE} | sed 's|\(....\).*|\1|')"
112                                ;;
113
114                        *)
115                                LETTER="$(echo ${SOURCE} | sed 's|\(.\).*|\1|')"
116                                ;;
117                esac
118
119                if echo "${SECTION}" | grep -qs contrib
120                then
121                        SECTION="contrib"
122                elif echo "${SECTION}" | grep -qs non-free
123                then
124                        SECTION="non-free"
125                else
126                        SECTION="main"
127                fi
128
129                # Install directory
130                mkdir -p binary/pool/${SECTION}/"${LETTER}"/"${SOURCE}"
131
132                # Move files
133                mv "${FILE}" binary/pool/${SECTION}/"${LETTER}"/"${SOURCE}"
134        done
135
136        cd binary
137
138        for SECTION in pool/*
139        do
140                SECTION="$(basename ${SECTION})"
141
142                mkdir -p dists/${LB_PARENT_DISTRIBUTION}/${SECTION}/binary-${LB_ARCHITECTURES}
143                apt-ftparchive packages pool/${SECTION} > dists/${LB_PARENT_DISTRIBUTION}/${SECTION}/binary-${LB_ARCHITECTURES}/Packages
144                gzip -9 -c dists/${LB_PARENT_DISTRIBUTION}/${SECTION}/binary-${LB_ARCHITECTURES}/Packages > dists/${LB_PARENT_DISTRIBUTION}/${SECTION}/binary-${LB_ARCHITECTURES}/Packages.gz
145        done
146
147        cd "${OLDPWD}"
148
149        rm -f chroot/bin/Packages
150
151        rm -rf chroot/binary.deb
152        mv chroot/var/lib/dpkg/status.tmp chroot/var/lib/dpkg/status
153
154        case "${LB_BUILD_WITH_CHROOT}" in
155                true)
156                        # Removing depends
157                        Remove_package
158
159                        # Saving cache
160                        Save_cache cache/packages.chroot
161                        ;;
162        esac
163
164        # Creating stage file
165        Create_stagefile .build/binary_package-lists
166fi
Note: See TracBrowser for help on using the repository browser.