Bones from mobs
Bones from loot
Bone meal from other sources
Bone blocks
All Skeleton variants (Skeletons, Strays, Parched, Bogged and Wither Skeletons) can either drop 0, 1 or 2 bones.
Desert Temples on average yield 20.5 bones per structure (so you should nearly always have enough for obtain bone block).
Pufferfish, Salmon, Cod and Tropical Fish all have a 5% chance to drop 1 bone meal (unaffected by looting).
Bone meal can be obtained from filling a composter (once I have done a page on that I'll link it here).
You can obtain bone blocks from Bastion generic chests (24.4% for 3-6). Bone blocks as well from Nether Fossils, normal fossils under swamps and deserts, and in Trial Chambers (Skeleton Trial Spawner and Bogged Trial Spawner).