I'm working on moving some of my packaging routines into CI workflows to save myself some time when releasing new versions of my app. However, I've been running into a weird issue with Launchpad that I've never seen before. For my data package (which contains a bunch of Lua scripts and other text resources), I use dh-exec
with an install
script to move all of the files into the binary package. This has worked flawlessly on my machine for years, but as soon as I started building and uploading from the CI server, Launchpad buildd started reporting this error for every file in the install
script:
dh_install: warning: Cannot find (any matches for) "=>" (tried in ., debian/tmp)
I've never seen this on my system before, and I'm using the exact same debian folder on CI as I use locally. The error suggests that =>
is being interpreted as the file name, but this shouldn't be possible as =>
is part of the syntax of the install
file, and there's no extra spaces between the tokens. The only thing I could think of is that the generator script I use to make the install
file isn't working right, but it appears to match previous working install
scripts from earlier. I tried moving my build target from Bionic to Focal (just in case this was an issue, and also because I dropped Bionic in the latest version), but this didn't work. I also tried switching the path from /usr/share/...
to debian/craftos-pc-data/usr/share/...
, and this allowed it to build, but it ended up placing files in /debian
on installed systems! (I had to emergency pull that package real quick.)
The only difference between my system and the CI server is that CI generates the changelog and install files automatically every time, and the files are hosted on GitHub instead of locally. I also use Arch Linux to build packages myself these days, but I used to use Ubuntu 18.04 on WSL as well. (I did create the repo on an NTFS drive - hopefully there's no permission problems there? I know that install
requires executable privileges, but this doesn't appear to be a problem, as it's still executing the script.)
Here's what my install
file looks like:
#!/usr/bin/env dh-exechdfont.bmp => /usr/share/craftos/hdfont.bmpdebug/console.lua => /usr/share/craftos/debug/console.luadebug/showfile.lua => /usr/share/craftos/debug/showfile.luadebug/profiler.lua => /usr/share/craftos/debug/profiler.luadebug/releasenotes.lua => /usr/share/craftos/debug/releasenotes.lua...
Does anyone know what might be causing this issue to appear? If you need them, here are the control file archive, the complete build log, and the build scripts: workflow, build & upload script called from workflow.
UPDATE: I managed to get it to work by moving debian/install
to debian/craftos-pc-data.install
. However, I'd appreciate to understand why just install
used to work, but doesn't work anymore - I can't find any information from Debian about what might have changed to make this happen.