Cuba to free 2,900 political prisoners ahead of papal visit