I feel alone with this problem, probably because I missunderstood something the way git works !
So far, the only workaround I see is to use an intermediate local branch to perform the rebase/squash stuff:

- branch local/mybranch.local :
keep all my (internal) history

- branch local/mybranch :
will receive a merge from mybranch.local
then perform a rebase/squash on it
then push it onto my github/mybranh (public repo)

- branch github/mybranch:
ready to be used for pull request to void-packages.

Pierre