Isso pode ser tarde demais para você, já que você já concordou contratualmente em fazer isso e pode ter concordado com termos incompatíveis entre si com diferentes clientes.
Existem duas maneiras pelas quais você pode fornecer aos seus clientes o seu código-fonte. Propriedade dos direitos autorais e licenciada.
Alguns clientes desejam a propriedade do código fonte. Isso significa que, no final do processo, eles pagarão o seu dinheiro e, em troca, você concederá a eles direitos autorais do código que você criar para eles. Uma razão para isso é se eles veem um potencial significativo de propriedade intelectual no código-fonte e podem querer valorizá-lo no balanço da empresa. Nesse cenário, você não terá direito ao uso continuado desse código-fonte para outros projetos, a menos que você também obtenha uma licença do seu cliente fornecendo esse direito.
Se o seu cliente estiver comprando um produto 'de prateleira', esperaria receber uma licença para usar o software, não a propriedade do código-fonte. Eles devem esperar que você esteja vendendo o mesmo software (ou similar) para muitas outras organizações e que, esperançosamente, estejam se beneficiando de um menor custo de compra devido à ampla base de clientes.
No entanto, a situação nesta questão é uma confusão dos dois.
Aqui está o que eu gostaria de poder fazer. Eu concederia ao seu cliente uma licença para usar (e modificar) seu código compartilhado. Se questionado pelo cliente, gostaria de salientar que esse é um código compartilhado que você já usou em vários projetos e possui lances atuais para futuros trabalhos baseados em você continuar usando esse trabalho. ressalte que isso resultou em menos tempo neste projeto para o seu cliente e, como resultado, eles pagaram um preço mais baixo. Como outras bibliotecas compartilhadas de código usadas pelo projeto, elas possuem uma licença para usar esse código e permitem que outras equipes de desenvolvimento desenvolvam esse e outros projetos baseados nessa biblioteca. No entanto, se eles preferirem a propriedade de todo o código, você deseja criar uma substituição, mas isso seria um custo adicional.
Dependendo do que você já se comprometeu, pode ser necessário escrever uma funcionalidade de substituição gratuitamente ou fornecer seu código-fonte.
Lembre-se, existem diferentes tipos de bibliotecas. A Biblioteca de modelos padrão em C ++ é um bom exemplo de uma biblioteca incluída no nível do código-fonte e compilada em um projeto executável que pode ser bastante semelhante ao modo como você usou seu código comum.