This might be enough to fix it - I just compare the values against each other rather than doing 4 explicit cases. I call bool() on them first before comparing them as we want a boolean comparison here, and that should work even if you pass None or "" or whatever I guess.
diff --git a/aptsources/sourceslist.py b/aptsources/sourceslist.py index 89cef642..d4e52c4d 100644 --- a/aptsources/sourceslist.py +++ b/aptsources/sourceslist.py @@ -332,10 +332,10 @@ class SourcesList(object): for source in sources: # if there is a repo with the same (type, uri, dist) just add the # components - if source.disabled and set(source.comps) == set(comps): - source.disabled = False + if bool(source.disabled) != bool(disabled) and set(source.comps) == set(comps): + source.disabled = bool(disabled) return source - elif not source.disabled: + elif bool(disabled) == bool(source.disabled): source.comps = uniq(source.comps + comps) return source # there isn't any matching source, so create a new line and parse it -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to python-apt in Ubuntu. https://bugs.launchpad.net/bugs/1311056 Title: apt-add-repository adds duplicate commented/disabled source lines Status in python-apt package in Ubuntu: Triaged Status in software-properties package in Ubuntu: Triaged Bug description: Trusty Tahr 14.04 0 root@osprey:/etc/apt/sources.list.d#cat aims-aims-desktop-trusty.list deb http://ppa.launchpad.net/aims/aims-desktop/ubuntu trusty main # deb-src http://ppa.launchpad.net/aims/aims-desktop/ubuntu trusty main 0 root@osprey:/etc/apt/sources.list.d#apt-add-repository -y ppa:aims/aims-desktop gpg: keyring `/tmp/tmp0ufdhnmv/secring.gpg' created gpg: keyring `/tmp/tmp0ufdhnmv/pubring.gpg' created gpg: requesting key BE796FF2 from hkp server keyserver.ubuntu.com gpg: /tmp/tmp0ufdhnmv/trustdb.gpg: trustdb created gpg: key BE796FF2: public key "Launchpad PPA for AIMS" imported gpg: Total number processed: 1 gpg: imported: 1 (RSA: 1) OK 0 root@osprey:/etc/apt/sources.list.d#cat aims-aims-desktop-trusty.list deb http://ppa.launchpad.net/aims/aims-desktop/ubuntu trusty main # deb-src http://ppa.launchpad.net/aims/aims-desktop/ubuntu trusty main # deb-src http://ppa.launchpad.net/aims/aims-desktop/ubuntu trusty main 0 root@osprey:/etc/apt/sources.list.d# That deb-src line should have stayed commented out, and not been duplicated. (Commented deb lines should of course be uncommented, as already fixed per https://bugs.launchpad.net/ubuntu/+source/python- apt/+bug/1042916 .) To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/python-apt/+bug/1311056/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp