- block:
  - name: Install needed packages
    apt:
      name: "{{ item }}"
    with_items:
      - dpkg-dev
      - equivs
      - libfile-fcntllock-perl  # to silence warning by equivs-build

  - set_fact:
      repodir: /tmp/repo/

  - name: Create repo dir
    file:
      path: "{{ repodir }}"
      state: directory
      mode: 0755

  - name: Copy package specs to remote
    copy:
      src: "{{ item }}"
      dest: "{{ remote_tmp_dir }}/{{ item | basename }}"
    with_fileglob:
      - "files/package_specs/*"

  - name: Create deb files
    shell: "equivs-build {{ remote_tmp_dir }}/{{ item | basename }}"
    args:
      chdir: "{{ repodir }}"
    with_fileglob:
      - "files/package_specs/*"

  - name: Create repo
    shell: dpkg-scanpackages --multiversion . /dev/null | gzip -9c > Packages.gz
    args:
      chdir: "{{ repodir }}"

  # Can't use apt_repository as it doesn't expose a trusted=yes option
  - name: Install the repo
    copy:
      content: deb [trusted=yes] file:{{ repodir }} ./
      dest: /etc/apt/sources.list.d/file_tmp_repo.list

  # Need to uncomment the deb-src for the universe component for build-dep state
  - name: Ensure deb-src for the universe component
    lineinfile:
      path: /etc/apt/sources.list
      backrefs: True
      regexp: ^#\s*deb-src http://archive\.ubuntu\.com/ubuntu/ (\w*){{ item }} universe$
      line: deb-src http://archive.ubuntu.com/ubuntu \1{{ item }} universe
      state: present
    with_items:
    - ''
    - -updates

  when: ansible_distribution in ['Ubuntu', 'Debian']
