Port manual/filesystem to file using constraints