Web lists-archives.com

quilt + dpkg + debhelper: Handling upstream files containing spaces

Hi all,

I am a little clueless about the below. I hope that someone can shed some light or provide a work-around.

I am currently working on OpenBoard packaging. OpenBoard ships loads of embedded jquery.* copies of code (and other JS libs, too).

Those jquery.* et al. files are in folder paths that contain blanks. Ouch. It seems that our tool chain components fail completely on handling them. Or maybe I am doing entirely wrong.

** Approach 1 **:

While repacking, remove all those jquery.* et al. files and replace them in the installed package via symlinks to /usr/share/javascript/jquery*.

So, I placed a debhelper file (debian/openboard-common.links) into the package folder and populated it with symlink dests and targets. Of course, I frowned at myself and

  * quoted those dirs containing strings with double quotes
  * ... with single quotes
  * ... tried with dh-exec and quotes
  * ... tried it with backslash + blank escpaing

... but to no avail...

I worked around this issue with [1]: Rename the folders that contain blanks and the dh_link works ok. Unfortunately, those folder names get displayed ot the user in the OpenBoard UI. Yes, that's faulty by design, but that's not with this mail is supposed to be about.


Ok, let's forget about that symlink hell anyway. It makes the installed package unnecessarily unclean. So...

** Approach 2 **:

While repacking, again remove all those jquery.* et al. files but not replace them later on by symlinks. Instead patch various *.html files in the source code tree at build time and put absolute files names of the JS library as provided by Debian packages into those files' html header.

This works fine for to-be-patched files that are not in a folder path containing blanks. For folder paths containing blanks, I get this:

* it is already hard to add those blank-containg file paths to quilt (quilt add "...\ ..." IIRC, quotes plus escaping, I may remember this inaccurately at the time of writing this) * once the to-be-patched files got added, I started editing / modifying those files
  * quilt refresh
  * quilt pop -a -> OK
  * quilt push -a -> failure
* ... quilt (or patch rather) fails to apply the patch, because it interprets the filenames in the '--- a/...' and '+++ b/...' lines only until the first blank (so half way down
    the file path)
* investigating the patch reveals, that the blanks are not escaped, neither are they
    quoted or anything
  * so, I add double quotes around all file paths
* now I can quilt push and pop again (if you quilt refresh, then the quotes gone again...) * then I run debuild -uc -us -S and dpkg fails to apply the patch with this message:

dpkg-source: error: diff openboard/debian/patches/2008_use-Debian-js-libraries.patch patches file with C-style encoded filename

  * same situation with single quotes

Anyone any idea???

Thanks in advance,

[1] https://salsa.debian.org/debian-edu-pkg-team/openboard/commit/8ce4fc101ad80caa068222f0b8839e19e6ef52ac


mike gabriel, herweg 7, 24357 fleckeby
mobile: +49 (1520) 1976 148
landline: +49 (4354) 8390 139

GnuPG Fingerprint: 9BFB AEE8 6C0A A5FF BF22  0782 9AF4 6B30 2577 1B31
mail: mike.gabriel@xxxxxxxxxxxxxxxxxxx, http://das-netzwerkteam.de

Attachment: pgpvxZYSSHSAT.pgp
Description: Digitale PGP-Signatur