This post is a slightly updated version of the one published earlier
Product backlog always lists items adding value for the customer. It includes functional requirements and non-functional requirements. It can also include items required by the team, but only the ones that will eventually bring value to the customer, e.g. taking into use a continuous integration server in order to guarantee the continuous end product quality. Product backlog cannot include concrete low level tasks and requests for building the intermediate artifacts.