@@ -269,6 +269,7 @@ jobs:
269269 shell : bash
270270 run : |
271271 ARCHIVE_DIR='${{ steps.vars.outputs.STAGING }}/${{ steps.vars.outputs.PKG_BASENAME }}/'
272+ COPYRIGHT_YEARS="2018 - "$(date "+%Y")
272273 # Binary
273274 cp 'target/${{ matrix.job.target }}/release/${{ env.PROJECT_NAME }}${{ steps.vars.outputs.EXE_suffix }}' "$ARCHIVE_DIR"
274275
@@ -278,11 +279,12 @@ jobs:
278279 # Man page
279280 cp 'target/${{ matrix.job.target }}/release/build/${{ env.PROJECT_NAME }}'-*/out/assets/manual/bat.1 "$ARCHIVE_DIR"
280281
281- # README and LICENSE files
282- cp "README.md" "LICENSE-MIT" "LICENSE-APACHE" "$ARCHIVE_DIR"
282+ # README, LICENSE and CHANGELOG files
283+ cp "README.md" "LICENSE-MIT" "LICENSE-APACHE" "CHANGELOG.md" " $ARCHIVE_DIR"
283284
284285 # Autocompletion files
285286 cp 'target/${{ matrix.job.target }}/release/build/${{ env.PROJECT_NAME }}'-*/out/assets/completions/bat.fish "$ARCHIVE_DIR/autocomplete/${{ env.PROJECT_NAME }}.fish"
287+ cp 'target/${{ matrix.job.target }}/release/build/${{ env.PROJECT_NAME }}'-*/out/assets/completions/bat.zsh "$ARCHIVE_DIR/autocomplete/${{ env.PROJECT_NAME }}.zsh"
286288
287289 # base compressed package
288290 pushd '${{ steps.vars.outputs.STAGING }}/' >/dev/null
@@ -300,25 +302,41 @@ jobs:
300302 install -Dm755 'target/${{ matrix.job.target }}/release/${{ env.PROJECT_NAME }}${{ steps.vars.outputs.EXE_suffix }}' "${DPKG_DIR}/usr/bin/${{ env.PROJECT_NAME }}${{ steps.vars.outputs.EXE_suffix }}"
301303 if [ -n "${{ steps.vars.outputs.STRIP }}" ]; then "${{ steps.vars.outputs.STRIP }}" "${DPKG_DIR}/usr/bin/${{ env.PROJECT_NAME }}${{ steps.vars.outputs.EXE_suffix }}" ; fi
302304
305+ # Work out shared library dependencies
306+ # dpkg-shlibdeps requires debian/control file. Dummy it and clean up
307+ mkdir "./debian"
308+ touch "./debian/control"
309+ case ${{ matrix.job.target }} in
310+ aarch64-*-linux-*) DEPENDS="$(dpkg-shlibdeps -l/usr/aarch64-linux-gnu/lib -O "${DPKG_DIR}/usr/bin/${{ env.PROJECT_NAME }}" 2> /dev/null | sed 's/^shlibs:Depends=//')" ;;
311+ arm-*-linux-*hf) DEPENDS="$(dpkg-shlibdeps -l/usr/arm-linux-gnueabihf/lib -O "${DPKG_DIR}/usr/bin/${{ env.PROJECT_NAME }}" 2> /dev/null | sed 's/^shlibs:Depends=//')" ;;
312+ i686-*-linux-*) DEPENDS="$(dpkg-shlibdeps -O "${DPKG_DIR}/usr/bin/${{ env.PROJECT_NAME }}" 2> /dev/null | sed 's/^shlibs:Depends=//')" ;;
313+ x86_64-*-linux-*) DEPENDS="$(dpkg-shlibdeps -O "${DPKG_DIR}/usr/bin/${{ env.PROJECT_NAME }}" 2> /dev/null | sed 's/^shlibs:Depends=//')" ;;
314+ esac;
315+ rm -rf "./debian"
316+
303317 # Man page
304318 install -Dm644 'target/${{ matrix.job.target }}/release/build/${{ env.PROJECT_NAME }}'-*/out/assets/manual/bat.1 "${DPKG_DIR}/usr/share/man/man1/${{ env.PROJECT_NAME }}.1"
305- gzip --best "${DPKG_DIR}/usr/share/man/man1/${{ env.PROJECT_NAME }}.1"
319+ gzip -n - -best "${DPKG_DIR}/usr/share/man/man1/${{ env.PROJECT_NAME }}.1"
306320
307321 # Autocompletion files
308322 install -Dm644 'target/${{ matrix.job.target }}/release/build/${{ env.PROJECT_NAME }}'-*/out/assets/completions/bat.fish "${DPKG_DIR}/usr/share/fish/vendor_completions.d/${{ env.PROJECT_NAME }}.fish"
323+ install -Dm644 'target/${{ matrix.job.target }}/release/build/${{ env.PROJECT_NAME }}'-*/out/assets/completions/bat.zsh "${DPKG_DIR}/usr/share/zsh/site-functions/_${{ env.PROJECT_NAME }}"
309324
310325 # README and LICENSE
311- install -Dm644 "README.md" "${DPKG_DIR}/usr/share/doc/${{ env.PROJECT_NAME }}/README.md"
312- install -Dm644 "LICENSE-MIT" "${DPKG_DIR}/usr/share/doc/${{ env.PROJECT_NAME }}/LICENSE-MIT"
313- install -Dm644 "LICENSE-APACHE" "${DPKG_DIR}/usr/share/doc/${{ env.PROJECT_NAME }}/LICENSE-APACHE"
326+ install -Dm644 "README.md" "${DPKG_DIR}/usr/share/doc/${{ steps.vars.outputs.DPKG_BASENAME }}/README.md"
327+ install -Dm644 "LICENSE-MIT" "${DPKG_DIR}/usr/share/doc/${{ steps.vars.outputs.DPKG_BASENAME }}/LICENSE-MIT"
328+ install -Dm644 "LICENSE-APACHE" "${DPKG_DIR}/usr/share/doc/${{ steps.vars.outputs.DPKG_BASENAME }}/LICENSE-APACHE"
329+ install -Dm644 "CHANGELOG.md" "${DPKG_DIR}/usr/share/doc/${{ steps.vars.outputs.DPKG_BASENAME }}/changelog"
330+ gzip -n --best "${DPKG_DIR}/usr/share/doc/${{ steps.vars.outputs.DPKG_BASENAME }}/changelog"
314331
315- cat > "${DPKG_DIR}/usr/share/doc/${{ env.PROJECT_NAME }}/copyright" <<EOF
332+ cat > "${DPKG_DIR}/usr/share/doc/${{ steps.vars.outputs.DPKG_BASENAME }}/copyright" <<EOF
316333 Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
317334 Upstream-Name: ${{ env.PROJECT_NAME }}
318335 Source: ${{ env.PROJECT_HOMEPAGE }}
319336
320337 Files: *
321338 Copyright: ${{ env.PROJECT_MAINTAINER }}
339+ Copyright: $COPYRIGHT_YEARS ${{ env.PROJECT_MAINTAINER }}
322340 License: Apache-2.0 or MIT
323341
324342 License: Apache-2.0
@@ -350,6 +368,7 @@ jobs:
350368 IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
351369 DEALINGS IN THE SOFTWARE.
352370 EOF
371+ chmod 644 "${DPKG_DIR}/usr/share/doc/${{ steps.vars.outputs.DPKG_BASENAME }}/copyright"
353372
354373 # control file
355374 mkdir -p "${DPKG_DIR}/DEBIAN"
@@ -361,9 +380,10 @@ jobs:
361380 Maintainer: ${{ env.PROJECT_MAINTAINER }}
362381 Homepage: ${{ env.PROJECT_HOMEPAGE }}
363382 Architecture: ${{ steps.vars.outputs.DPKG_ARCH }}
383+ Depends: $DEPENDS
364384 Provides: ${{ env.PROJECT_NAME }}
365385 Conflicts: ${{ steps.vars.outputs.DPKG_CONFLICTS }}
366- Description: A cat(1) clone with wings.
386+ Description: cat(1) clone with wings.
367387 A cat(1) clone with syntax highlighting and Git integration.
368388 EOF
369389
0 commit comments