=== modified file 'aptdaemon/core.py' --- aptdaemon/core.py 2015-06-18 12:46:21 +0000 +++ aptdaemon/core.py 2015-09-04 20:40:42 +0000 @@ -2069,6 +2069,10 @@ """ for fullname in pkg_names: name, version, release = split_package_id(fullname) + name, sep, auto_flag = name.partition("#") + if not auto_flag in ("", "auto"): + raise errors.AptDaemonError("%s isn't a valid flag" % + name) if not re.match(REGEX_VALID_PACKAGENAME, name): raise errors.AptDaemonError("%s isn't a valid package name" % name) === modified file 'aptdaemon/worker/aptworker.py' --- aptdaemon/worker/aptworker.py 2015-06-18 12:46:21 +0000 +++ aptdaemon/worker/aptworker.py 2015-09-04 20:47:23 +0000 @@ -386,6 +386,8 @@ """Mark packages for installation.""" for pkg_name, pkg_ver, pkg_rel in [self._split_package_id(pkg) for pkg in packages]: + pkg_name, sep, auto_marker = pkg_name.partition("#") + from_user = (auto_marker != "auto") try: pkg = self._cache[pkg_name] except KeyError: @@ -415,7 +417,7 @@ raise TransactionFailed( ERROR_PACKAGE_ALREADY_INSTALLED, _("Package %s is already installed"), pkg_name) - pkg.mark_install(False, True, True) + pkg.mark_install(False, True, from_user) resolver.clear(pkg) resolver.protect(pkg) if pkg_ver: