Import patches-unapplied version 2.255 to ubuntu/utopic-proposed

Imported using git-ubuntu import.

Changelog parent: f381ad345f

New changelog entries:
  [ Steve Langasek ]
  * Add support to the ubuntu-touch target to generate a separate custom
    tarball as part of the build, moving most click packages into it.
  [ Colin Watson ]
  * Temporarily install the to-be-moved click packages in both core and
    custom databases, to simplify the landing process.
impish
Colin Watson 10 years ago committed by usd-importer
parent f381ad345f
commit 02cb6ca7cf

12
debian/changelog vendored

@ -1,3 +1,15 @@
livecd-rootfs (2.255) utopic; urgency=medium
[ Steve Langasek ]
* Add support to the ubuntu-touch target to generate a separate custom
tarball as part of the build, moving most click packages into it.
[ Colin Watson ]
* Temporarily install the to-be-moved click packages in both core and
custom databases, to simplify the landing process.
-- Colin Watson <cjwatson@ubuntu.com> Tue, 14 Oct 2014 00:12:08 +0100
livecd-rootfs (2.254) utopic; urgency=medium livecd-rootfs (2.254) utopic; urgency=medium
* force the right alternative when the libmir*-android packages are * force the right alternative when the libmir*-android packages are

@ -298,6 +298,12 @@ elif [ -e binary-tar.tar.gz ]; then
cp -a binary-tar.tar.gz "$PREFIX.rootfs.tar.gz" cp -a binary-tar.tar.gz "$PREFIX.rootfs.tar.gz"
fi fi
if [ "$PROJECT" = "ubuntu-touch" ]; then
(cd "binary/$INITFS/custom.dir/" && tar -c *) | \
gzip -9 --rsyncable > "$PREFIX.custom.tar.gz"
chmod 644 "$PREFIX.custom.tar.gz"
fi
# '--initramfs none' produces different manifest names. # '--initramfs none' produces different manifest names.
if [ -e "binary/$INITFS/filesystem.packages" ]; then if [ -e "binary/$INITFS/filesystem.packages" ]; then
ln "binary/$INITFS/filesystem.packages" "$PREFIX.manifest" ln "binary/$INITFS/filesystem.packages" "$PREFIX.manifest"

@ -0,0 +1,9 @@
#!/bin/sh
set -e
echo "Splitting out custom tarball"
rm -f binary/boot/custom.dir
mkdir binary/boot/custom.dir
mv binary/boot/filesystem.dir/custom binary/boot/custom.dir/custom

@ -7,10 +7,15 @@ echo "Setting up click packages"
click_uri=http://archive-team.internal/click_packages click_uri=http://archive-team.internal/click_packages
click_list=$click_uri/click_list click_list=$click_uri/click_list
click_db=/usr/share/click/preinstalled click_db=/usr/share/click/preinstalled
click_db_custom=/custom/click
mkdir -p -m 755 "$click_db" mkdir -p -m 755 "$click_db"
chown clickpkg:clickpkg "$click_db" chown clickpkg:clickpkg "$click_db"
# some of these get installed to /custom/click
mkdir -p -m 755 "$click_db_custom"
chown clickpkg:clickpkg "$click_db_custom"
tmpdir="$(mktemp -d)" tmpdir="$(mktemp -d)"
cleanup () { rm -rf "$tmpdir"; } cleanup () { rm -rf "$tmpdir"; }
trap cleanup EXIT trap cleanup EXIT
@ -23,7 +28,40 @@ do
if echo $package | egrep -q "_$CLICKARCH.click|_all.click|_unknown.click"; then if echo $package | egrep -q "_$CLICKARCH.click|_all.click|_unknown.click"; then
echo "Setting up $package" echo "Setting up $package"
wget --no-verbose -O "$tmpdir/$package" "$click_uri/$package" wget --no-verbose -O "$tmpdir/$package" "$click_uri/$package"
click install --force-missing-framework --root="$click_db" --all-users \ # FIXME: first attempt, a hard-coded list of the packages that go to
"$tmpdir/$package" # the custom tarball
case $package in
com.ubuntu.developer.webapps.webapp-amazon_*|\
com.ubuntu.developer.webapps.webapp-ebay_*|\
com.ubuntu.developer.webapps.webapp-facebook_*|\
com.ubuntu.developer.webapps.webapp-gmail_*|\
com.ubuntu.developer.webapps.webapp-twitter_*|\
com.ubuntu.dropping-letters_*|\
com.ubuntu.filemanager_*|\
com.ubuntu.reminders_*|\
com.ubuntu.sudoku_*|\
com.ubuntu.terminal_*)
roots="$click_db $click_db_custom"
;;
*)
roots="$click_db"
;;
esac
for root in $roots; do
if [ "$root" = "$click_db_custom" ]; then
# FIXME: there is no good way to stop click from
# deduplicating things when installing the same package in
# multiple databases; the best we can do is to temporarily
# pretend that the core database does not exist
mv /etc/click/databases/10_core.conf \
/etc/click/databases/10_core.conf.tmp
fi
click install --force-missing-framework --root="$root" --all-users \
"$tmpdir/$package"
if [ "$root" = "$click_db_custom" ]; then
mv /etc/click/databases/10_core.conf.tmp \
/etc/click/databases/10_core.conf
fi
done
fi fi
done done

@ -7,3 +7,45 @@ echo "I: precompiling click apparmor policies"
echo "I: precompiling deb apparmor policies" echo "I: precompiling deb apparmor policies"
/sbin/apparmor_parser -M ${FEATURES} -Q --write-cache --cache-loc=/etc/apparmor.d/cache/ `find /etc/apparmor.d/ -maxdepth 1 -type f -not -path '*/\.*'` /sbin/apparmor_parser -M ${FEATURES} -Q --write-cache --cache-loc=/etc/apparmor.d/cache/ `find /etc/apparmor.d/ -maxdepth 1 -type f -not -path '*/\.*'`
echo "I: precompiling custom click apparmor policies"
mkdir -p /custom/cache/apparmor
/sbin/apparmor_parser -M ${FEATURES} -Q --write-cache --cache-loc=/custom/cache/apparmor/ `find /var/lib/apparmor/profiles/ -maxdepth 1 -type f -not -path '*/\.*'`
#get the apparmor manifests and profiles
mkdir -p /custom/lib/apparmor/clicks
mkdir -p /custom/lib/apparmor/profiles
for manifest in /var/lib/apparmor/clicks/*; do
# FIXME: if this code survives for very long, it should probably be
# rewritten using click's Python bindings
pkgdir="$(click pkgdir "$manifest")"
manifest_real="$(readlink -f "$manifest")"
manifest_tail="${manifest_real#$pkgdir}"
# Does this package exist in the custom tarball? If so, move its
# profiles there (if it only exists in custom) or copy them (if it
# also exists in core).
version="${pkgdir##*/}"
pkgdir_noversion="${pkgdir%/*}"
name="${pkgdir_noversion##*/}"
profile="$(basename "$manifest" .json)"
if [ -d "/custom/click/$name/$version" ]; then
# Clone into custom.
ln -nsf "/custom/click/$name/$version$manifest_tail" "/custom/lib/apparmor/clicks/${manifest##*/}"
cp -a "/var/lib/apparmor/profiles/click_$profile" /custom/lib/apparmor/profiles/
if [ -d "/usr/share/click/preinstalled/$name/$version" ]; then
# Ensure that the version in the rootfs points to
# the core database.
ln -nsf "/usr/share/click/preinstalled/$name/$version$manifest_tail" "$manifest"
else
# Remove from the rootfs.
rm -f "$manifest"
rm -f "/var/lib/apparmor/profiles/click_$profile"
rm -f "/var/cache/apparmor/click_$profile"
fi
else
# Remove from custom.
rm -f "/custom/cache/apparmor/click_$profile"
fi
done

Loading…
Cancel
Save