What distinguishes open-source software from proprietary software?