Apache和BSD都不是一个传染的协议,所以完全可以不同的模块甚至不同的文件用这两个协议之一,这是允许的。传染的协议当属GPL,v3更是狠辣无比连硬件都染指了
如果要把一个模块从协议A改到协议B,就要看谁更严格了,从不严格的协议可以改到更严格的协议,比如LGPL to GPL,反过来没戏。。。Apache到BSD我觉得是没问题的,反过来可能会有违反
至于在自己的程序里用了Apache或者BSD协议的第三方库,继续用BSD发布肯定一点问题没有,用Apache发布但是部分模块换成BSD也ok,或者换用更严格的协议发布整个程序,比如LGPL和GPL