[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#1029843: Bug#1035505: firmware-nonfree: debian/bin/gencontrol.py fails on spaces and backslashes



James Addison <jay@jp-hosting.net> (2023-05-04):
> I think that the edits to 'debian/config/brcm80211/defines' may be the cause
> of the space-escaping issue (noticed that in your fork on Salsa).
> 
> Building locally without modifications from firmware-nonfree_20230210-5 I get:

>   lrwxrwxrwx 1 jka jka   44 May  4 18:45 'debian/build/install/brcm/brcmfmac43455-sdio.Raspberry Pi Foundation-Raspberry Pi 4 Model B.txt' -> brcmfmac43455-sdio.raspberrypi,4-model-b.txt
>   lrwxrwxrwx 1 jka jka   44 May  4 18:45 'debian/build/install/brcm/brcmfmac43455-sdio.Raspberry Pi Foundation-Raspberry Pi Compute Module 4.txt' -> brcmfmac43455-sdio.raspberrypi,4-model-b.txt
> 
> 
> So I think the symlinks are created.. but then lost when the .deb is built?

If you start from the git repository, at the appropriate tag
(debian/20230210-5), you'll find need to unpack the upstream tarball:

    tar xf ../firmware-nonfree_20230210.orig.tar.xz --strip 1

Then generate stuff:

    (unstable-amd64-devel)kibi@tokyo:~/debian-kernel/firmware-nonfree.git (sid)$ ./debian/rules debian/control
    mkdir -p debian/build
    printf >debian/build/version-info 'Source: %s\nVersion: %s\n' firmware-nonfree 20230210-5
    /usr/bin/make -f debian/rules debian/control-real
    make[1]: Entering directory '/home/kibi/debian-kernel/firmware-nonfree.git'
    ./copy-firmware.sh debian/build/install
    debian/bin/gencontrol.py /usr/src/linux-support-6.1.0-8
    md5sum [ edited for brevity ] > debian/control.md5sum
    
    This target is made to fail intentionally, to make sure
    that it is NEVER run during the automated build. Please
    ignore the following error, the debian/control file has
    been generated SUCCESSFULLY.
    
    exit 1
    make[1]: *** [debian/rules:61: debian/control-real] Error 1
    make[1]: Leaving directory '/home/kibi/debian-kernel/firmware-nonfree.git'
    make: *** [debian/rules:43: debian/control] Error 2

See the ./copy-firmware.sh step? That's using the upstream WHENCE file.

That step is also called when building from the source package directly.


The problem is the next stage, distributing the relevant files into the
appropriate binary packages. That part is controlled by the defines, and
that's what needs to be adjusted (file format and/or how it's used).

A quick look suggests files_orig isn't set properly, with each part of
the path being considered a path on its own. I'm not familiar with the
config object yet, but if that's indeed the correct thing, that can't
work as it is:

    class SchemaItemList(object):
        def __init__(self, type=r"\s+"):
            self.type = type
    
        def __call__(self, i):
            i = i.strip()
            if not i:
                return []
            return [j.strip() for j in re.split(self.type, i)]


Cheers,
-- 
Cyril Brulebois (kibi@debian.org)            <https://debamax.com/>
D-I release manager -- Release team member -- Freelance Consultant

Attachment: signature.asc
Description: PGP signature


Reply to: