def prepare_sysroot(): ''' Creates intercept script and test package. ''' # Add a intercept script for ls to the sysroot touch_dir('%s/usr/local/share/opkg/intercept' % cfg.offline_root) with open('%s/usr/local/share/opkg/intercept/ls' % cfg.offline_root, 'w') as f: os.fchmod(f.fileno(), 0o755) f.write('\n'.join([ '#!/bin/sh', 'set -e', 'exeFileName="`basename "$1"`"', 'echo -n \"intercept from $exeFileName:\" >> \'%s\'' % TEST_LOG, 'echo "ls $* was intercepted"', ])) o = opk.OpkGroup() # Add a test package a = opk.Opk(Package='a') a.postinst = '\n'.join([ '#!/bin/sh', 'set -e', 'ls "$0"', ]) o.addOpk(a) o.write_opk() o.write_list()
# # root@terminal:# opkg upgrade -force-defaults -autoremove # Upgrading A on root from 1.0-r0.1 to 2.0-r0.1... # Downloading ... # Installing C (1.0-r0) to root... # Collected errors: * ERROR: The following packages conflict with C: * # # Status: Accepted # import os import opk, cfg, opkgcl opk.regress_init() o = opk.OpkGroup() o.add(Package="a", Version="1.0", Depends="b") o.add(Package="b") o.write_opk() o.write_list() opkgcl.update() opkgcl.install("a") o = opk.OpkGroup() o.add(Package="a", Version="2.0", Depends="c") o.add(Package="c", Conflicts="b") o.write_opk() o.write_list() opkgcl.update() status = opkgcl.upgrade("a", "--autoremove")