If CRM Content is not enabled in the org then the conversion fails. It happens in different ways dependent on the settings:
Users can only view the file but cannot edit it, even if the user can edit the attachment's parent record
The following error occurs:
Insert failed. First exception on row 0; first error: INSUFFICIENT_ACCESS_OR_READONLY, You do not have the level of access necessary to perform the operation you requested. Please contact the owner of the record or your administrator if access is necessar
and
Users inherit view or edit access to the file based on their view or edit access to the attachment's parent record
The following error occurs:
Insert failed. First exception on row 0; first error: INSUFFICIENT_ACCESS_OR_READONLY, Invalid sharing type I: [ShareType]
Both of these look like they might be a Salesforce defect, the following code exhibits the same behaviour for me:
Account a = [SELECT Id FROM Account LIMIT 1];
ContentVersion cv = new ContentVersion(versionData = Blob.valueOf('YQ=='), title = 'test', description = 'test', pathOnClient = '/test.txt');
insert cv;
cv = [select ContentDocumentId from ContentVersion where id=:cv.id];
insert new ContentDocumentLink (ContentDocumentId=cv.contentDocumentId, LinkedEntityId=a.Id, ShareType='V');
ie the error messages are the same depending on ShareType when Content disabled, and succeeding with Content enabled. Inserting a ContentDocumentLink in a separate transaction succeeds with Content disabled.
In Summer 17 prerelease orgs the issue is not reproducible, so might disappear in time.
It'd be helpful if the readme could note this, or even better for the package UI to flag it if you are able to detect if Content is enabled.