A new approach to package dependency solving