You can publish your code open source, charge for it and still forbid people to sell it or even redistribute the source.
Not really. It depends on the exact licence but just about every 'open source' licence, and the Open Source Definition from the OSI and the Free Software Defintion from the FSF will requite that the licence lets the people who get the software to be allowed to redistribute it.
Just look at the link you provided for 'open source definition': "Open source doesn't just mean access to the source code. The distribution terms of open-source software must comply with the following criteria:", and №1 being: "The license shall not restrict any party from selling or giving away the software as a component of an aggregate software distribution containing programs from several different sources. The license shall not require a royalty or other fee for such sale."
Not really. It depends on the exact licence but just about every 'open source' licence, and the Open Source Definition from the OSI and the Free Software Defintion from the FSF will requite that the licence lets the people who get the software to be allowed to redistribute it.
Just look at the link you provided for 'open source definition': "Open source doesn't just mean access to the source code. The distribution terms of open-source software must comply with the following criteria:", and №1 being: "The license shall not restrict any party from selling or giving away the software as a component of an aggregate software distribution containing programs from several different sources. The license shall not require a royalty or other fee for such sale."