skip to main content
10.5555/2664446.2664470acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
research-article

Why do software packages conflict?

Published: 02 June 2012 Publication History

Abstract

Determining whether two or more packages cannot be installed together is an important issue in the quality assurance process of package-based distributions. Unfortunately, the sheer number of different configurations to test makes this task particularly challenging, and hundreds of such incompatibilities go undetected by the normal testing and distribution process until they are later reported by a user as bugs that we call "conflict defects".
We performed an extensive case study of conflict defects extracted from the bug tracking systems of Debian and Red Hat. According to our results, conflict defects can be grouped into five main categories. We show that with more detailed package meta-data, about 30 % of all conflict defects could be prevented relatively easily, while another 30 % could be found by targeted testing of packages that share common resources or characteristics. These results allow us to make precise suggestions on how to prevent and detect conflict defects in the future.

References

[1]
Pietro Abate, Jaap Boender, Roberto Di Cosmo & Stefano Zacchiroli (2009): Strong Dependencies between Soflware Components. In: ESEM 2009, IEEE, pp. 89--99.
[2]
Pietro Abate & Roberto Di Cosmo (2011): Predicting upgrade failures using dependency analysis. In: 27th International Conference on Data Engineering, IEEE, pp. 145--150.
[3]
Alan W. Brown & Kurt C. Wallnau (1998): The Current State of CBSE. IEEE Software 15, pp. 37--46.
[4]
Christian Collberg, John H. Hartman, Sridivya Babu & Sharath K. Udupa (2005): Slinky: Static linking reloaded. In: Proc. USENIX 2005 Annual Technical Conference, USENIX, Anaheim, USA, pp. 309--322.
[5]
Roberto Di Cosmo & Jaap Boender (2010): Using strong conflicts to detect quality issues in component-based complex systems. In: 3rd India software engineering conference, ISEC 2010, ACM, pp. 163--172.
[6]
Roberto Di Cosmo, Paulo Trezentos & Stefano Zacchiroli (2008): Package Upgrades in FOSS Distributions: Details and Challenges. In: International Workshop on Hot Topics in Software Upgrades, HotSWUp '08, ACM, New York, NY, USA, pp. 7:1--7:5.
[7]
Ian Jackson, Iustin Pop & Stefano Zacchiroli: autopkgtest - automatic as-installed package testing. Debian Enhancement Proposal 8: http://dep.debian.net/deps/dep8/.
[8]
Ian Jackson & Christian Schwarz (2008): Debian Policy Manual. http://www.debian.org/doc/debian-policy/.
[9]
Fabio Mancinelli, Jaap Boender, Roberto Di Cosmo, Jérôme Vouillon, Berke Durak, Xavier Leroy & Ralf Treinen (2006): Managing the Complexity of Large Free and Open Source Package-Based Software Distributions. In: ASE 2006, IEEE, pp. 199--208.
[10]
Gustavo Noronha Silva (2008): APT HOWTO. http://www.debian.org/doc/manuals/apt-howto/.
[11]
Lucas Nussbaum & Stefano Zacchiroli (2010): The Ultimate Debian Database: Consolidating Bazaar Metadata for Quality Assurance and Data Mining. In: 7th IEEE Working Conference on Mining Software Repositories (MSR 2010), Cape Town, South Africa.
[12]
Leon Presser & John R. White (1972): Linkers and loaders. Computing Surveys (CSUR) 4(3), pp. 149--167.
[13]
The Debian Project: Debian bug tracking system. http://debian.org/Bugs/. Retrieved March 2012.
[14]
The Debian Project: Software packages in {Debian} "sid". http://packages.debian.org/sid/allpackages. Retrieved June 2011.
[15]
Red Hat, Inc.: KVM. http://www.linux-kvm.org.
[16]
Red Hat, Inc.: Red Hat Bugzilla Main Page. http://bugzilla.redhat.com. Retrieved March 2012.
[17]
Murray Stokely (2004): The FreeBSD Handbook, 3 edition. FreeBSD Mall.
[18]
Kuniyasu Suzaki, Toshiki Yagi, Kengo Iijima, Nguyen Anh Quynh, Cyrille Artho & Yoshihito Watanebe (2010): Moving from Logical Sharing of Guest OS to Physical Sharing of Deduplication on Virtual Machine. In: Proc. 5th USENIX Workshop on Hot Topics in Security (HotSec 2010), USENIX, Washington D.C., USA.
[19]
Clemens Szyperski (1998): Component Software. Beyond Object-Oriented Programming. Addison-Wesley.
[20]
Ralf Treinen (2011): EDOS-Debcheck: File Overwrite Errors. http://edos.debian.net/file-overwrites/. Retrieved June 2011.
[21]
Andreas Zeller & Ralf Hildebrandt (2002): Simplifying and Isolating Failure-Inducing Input. Software Engineering 28(2), pp. 183--200.

Cited By

View all
  • (2024)Revisiting Knowledge-Based Inference of Python Runtime Environments: A Realistic and Adaptive ApproachIEEE Transactions on Software Engineering10.1109/TSE.2023.334647450:2(258-279)Online publication date: 1-Feb-2024
  • (2023)Dependency Update Strategies and Package CharacteristicsACM Transactions on Software Engineering and Methodology10.1145/360311032:6(1-29)Online publication date: 29-Sep-2023
  • (2021)Understanding Software-2.0ACM Transactions on Software Engineering and Methodology10.1145/345347830:4(1-42)Online publication date: 23-Jul-2021
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
MSR '12: Proceedings of the 9th IEEE Working Conference on Mining Software Repositories
June 2012
262 pages
ISBN:9781467317610

Sponsors

Publisher

IEEE Press

Publication History

Published: 02 June 2012

Check for updates

Qualifiers

  • Research-article

Conference

ICSE '12
Sponsor:

Upcoming Conference

ICSE 2025

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)13
  • Downloads (Last 6 weeks)1
Reflects downloads up to 12 Sep 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Revisiting Knowledge-Based Inference of Python Runtime Environments: A Realistic and Adaptive ApproachIEEE Transactions on Software Engineering10.1109/TSE.2023.334647450:2(258-279)Online publication date: 1-Feb-2024
  • (2023)Dependency Update Strategies and Package CharacteristicsACM Transactions on Software Engineering and Methodology10.1145/360311032:6(1-29)Online publication date: 29-Sep-2023
  • (2021)Understanding Software-2.0ACM Transactions on Software Engineering and Methodology10.1145/345347830:4(1-42)Online publication date: 23-Jul-2021
  • (2021)When and How to Make Breaking ChangesACM Transactions on Software Engineering and Methodology10.1145/344724530:4(1-56)Online publication date: 23-Jul-2021
  • (2020)WatchmanProceedings of the ACM/IEEE 42nd International Conference on Software Engineering10.1145/3377811.3380426(125-135)Online publication date: 27-Jun-2020
  • (2019)An empirical comparison of dependency network evolution in seven software packaging ecosystemsEmpirical Software Engineering10.1007/s10664-017-9589-y24:1(381-416)Online publication date: 1-Feb-2019
  • (2017)Variability testing in the wildSoftware and Systems Modeling (SoSyM)10.1007/s10270-015-0459-z16:1(173-194)Online publication date: 1-Feb-2017
  • (2016)How to break an API: cost negotiation and community values in three software ecosystemsProceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering10.1145/2950290.2950325(109-120)Online publication date: 1-Nov-2016
  • (2016)Inter-app communication in AndroidProceedings of the 13th International Conference on Mining Software Repositories10.1145/2901739.2901762(177-188)Online publication date: 14-May-2016
  • (2015)A historical analysis of Debian package incompatibilitiesProceedings of the 12th Working Conference on Mining Software Repositories10.5555/2820518.2820545(212-223)Online publication date: 16-May-2015
  • Show More Cited By

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media