No specific packager available for the distro version ubuntu_16_04_xenial

David Ing ding at panopto.com
Mon May 7 16:31:50 UTC 2018


That is very interesting.

I really like cerbero and hopefully I can find some personal time to fix
this over the weekend.

So to summarize, these are the modifications that we would need.

   1. For the Python 3 version of cerbero, the ASCII license text needs to
   get written as ASCII (not UTF-8).  This seems straight-forward enough.
   2. The deb package paths need to be fixed, including the *.pc files.
      - I guess the proper way to do this would be to dig into the way the
      debian packages are being built and make the appropriate modifications.
      - A hacky way to do this would be extract each deb file using the
      `ar` command, modify the package paths and the *.pc files, then use the
      `ar` command to create the new *.deb file.

*Question:  Does anybody have some useful tips about accomplishing item #2
the proper way?*  My knowledge of auto-tools, make, and debian packagers is
very limited.  Without guidance I will need to use the hacky solution,
which means it probably won't get merged into the mainline.

*Question:  Did I miss anything else that needs to get fixed around *.deb
file packaging?*


On Mon, May 7, 2018 at 7:13 AM, Nicolas Dufresne <nicolas at ndufresne.ca>
wrote:

>
>
> Le lun. 7 mai 2018 15:42, David Ing <ding at panopto.com> a écrit :
>
>> Nicolas,
>>
>> Are you saying that cerbero is not the preferred way of building deb
>> packages?  If that is true then what is the preferred way?
>>
>
> Each Linux distribution have their own preferred way, tailored for the
> specific distro configuration. Some uses Debian Makefiles, some uses RPM
> specs, some have their own formats.
>
> The Debian and RPM packagers in Cerbero have never been used by the
> GStreamer project to deliver prebuilds binaries, we have always delegated
> the work of distribution to distributions (Debian, UBuntu, Fedora, etc.).
> This could change in the future, but likely not through Cerbero.
>
> These packagers scripts dates back from the commercial GStreamer SDK
> project, from witch Cerbero build system was built. It's the only build
> system that we know that supports all the targets we support (Linux,
> Windows, OSX, iOS and Android) and are very happy that this tool was later
> contributed upstream. Though we totally understand the limitation it has
> over build path, including the fact the the prefix does not match the final
> installation path (Wich Linux distro packagers normally do correctly). We
> workaround with scripts, as we don't have strong motivation to revisit
> these.
>
>
>> On Mon, May 7, 2018, 5:27 AM Nicolas Dufresne <nicolas at ndufresne.ca>
>> wrote:
>>
>>>
>>>
>>> Le lun. 7 mai 2018 08:57, Matthew Thyer <matthew.thyer at adelaide.edu.au>
>>> a écrit :
>>>
>>>> I don’t know what gst-shell is.
>>>>
>>> Or maybe it's called gst-env, anyway, you need a script in ordered to
>>> use the files installed by the generated packages. I'm assuming you managed
>>> to install it after you worked around the Python UTF8 bug. This second bug
>>> need to be fixed, assuming you have utf8 support in your Python
>>> installation. It's possible that it's a regression introduced by the
>>> porting to Python 3. We don't usually tes on bare distro without utf8
>>> shell. For the first, it will only be fixed if someone is willing to
>>> improve this packager. It's not used much these days.
>>>
>>>
>>> I’ve documented my steps to reproduce in the report for bug 795792
>>>> <https://bugzilla.gnome.org/show_bug.cgi?id=795792>.
>>>>
>>>> That’s not exactly correct as I’m now restricting my to the Ubuntu
>>>> Xenial docker image and I’m also building the 1.14 branch.
>>>>
>>>> My exact steps are:
>>>>
>>>>    1. docker run -it ubuntu:xenial bash
>>>>    2. apt install -y sudo python3 python-dev git intltool
>>>>    3. populate your ~/.gitconfig for your identity
>>>>    4. mkdir ~/git
>>>>    5. cd ~/git
>>>>    6. git clone git://anongit.freedesktop.org/gstreamer/cerbero -b 1.14
>>>>    7. cd ~/git/cerbero
>>>>    8. git checkout 1.14
>>>>    9. yes | ./cerbero-uninstalled bootstrap
>>>>    10. perl -pi -e 's/[^[:ascii:]]//g' packages/gstreamer-1.0/
>>>>    license.txt
>>>>    11. ./cerbero-uninstalled package gstreamer-1.0
>>>>
>>>>
>>>>
>>>> I hope this makes it easy to reproduce as that’s my intention in using
>>>> docker.
>>>>
>>>>
>>>>
>>>> *From:* gstreamer-devel <gstreamer-devel-bounces at lists.freedesktop.org>
>>>> *On Behalf Of *Nicolas Dufresne
>>>> *Sent:* Monday, 7 May 2018 3:58 PM
>>>> *To:* Discussion of the development of and with GStreamer <
>>>> gstreamer-devel at lists.freedesktop.org>
>>>> *Subject:* Re: No specific packager available for the distro version
>>>> ubuntu_16_04_xenial
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> Le lun. 7 mai 2018 01:27, Matthew Thyer <matthew.thyer at adelaide.edu.au>
>>>> a écrit :
>>>>
>>>> I’ve found that stripping non-ascii characters from the file
>>>> "packages/gstreamer-1.0/license.txt" allows packaging using the
>>>> default packager to complete. However, the packages produced are not
>>>> correct as reported by David Ing for cerbero v1.12.4 in his message: “Cerbero
>>>> 1.12.4 Problem with paths inside *.deb files
>>>> <https://lists.freedesktop.org/archives/gstreamer-devel/2018-April/067562.html>”.
>>>> The error is that the paths for the files to be installed are the paths
>>>> where the source was built rather than the default installation prefix of
>>>> /usr/local as is expected.
>>>>
>>>>
>>>>
>>>> It's not clear what is considered broken here, did you run gst-shell ?
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> *From:* gstreamer-devel <gstreamer-devel-bounces at lists.freedesktop.org>
>>>> *On Behalf Of *Matthew Thyer
>>>> *Sent:* Friday, 4 May 2018 3:22 PM
>>>> *To:* Discussion of the development of and with GStreamer <
>>>> gstreamer-devel at lists.freedesktop.org>
>>>> *Subject:* RE: No specific packager available for the distro version
>>>> ubuntu_16_04_xenial
>>>>
>>>>
>>>>
>>>> Bug 795792 logged
>>>>
>>>>
>>>>
>>>> *From:* gstreamer-devel <gstreamer-devel-bounces at lists.freedesktop.org>
>>>> *On Behalf Of *Nicolas Dufresne
>>>> *Sent:* Thursday, 26 April 2018 11:02 PM
>>>> *To:* Discussion of the development of and with GStreamer <
>>>> gstreamer-devel at lists.freedesktop.org>
>>>> *Subject:* Re: No specific packager available for the distro version
>>>> ubuntu_16_04_xenial
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> Le mar. 24 avr. 2018 04:27, Matthew Thyer <
>>>> matthew.thyer at adelaide.edu.au> a écrit :
>>>>
>>>> Greetings gstreamer-devel list,
>>>>
>>>>
>>>>
>>>> I’m wishing to build and package GStreamer v1.14 (or later) for the
>>>> ARM32 hard-float architecture (for Raspberry Pi 2, 3, 3B+). I mean the GNU
>>>> Triplet: arm-linux-gnueabihf.
>>>>
>>>> As you may have seen from my last two emails (“Failure to cross compile
>>>> GStreamer v1.14 with config/cross-lin-arm.cbc” & “How to cross compile
>>>> GStreamer for Raspberry Pi 2, 3, 3B+ (arch=armhf)?”) I’m not currently able
>>>> to cross compile for this outcome so I have instead setup docker on my
>>>> Raspberry Pi 3 and run a native build. This completes normally but then
>>>> fails to package the results of the build.
>>>>
>>>> It looks like cerbero tries to fall back to some kind of default
>>>> packager but then crashes and I get a python traceback.
>>>>
>>>>
>>>>
>>>> The error messages from the failure are:
>>>>
>>>> WARNING: No specific packager available for the distro version
>>>> ubuntu_16_04_xenial, using generic packager for distro debian
>>>>
>>>> WARNING: No packager defined, using default packager "Default <
>>>> default at change.me>"
>>>>
>>>> Traceback (most recent call last):
>>>>
>>>>  File "./cerbero-uninstalled", line 9, in <module>
>>>>
>>>>    main()
>>>>
>>>>  File "./cerbero/main.py", line 130, in main
>>>>
>>>>    Main(sys.argv[1:])
>>>>
>>>>  File "./cerbero/main.py", line 55, in __init__
>>>>
>>>>    self.run_command()
>>>>
>>>>  File "./cerbero/main.py", line 105, in run_command
>>>>
>>>>    res = commands.run(command, self.config, self.args)
>>>>
>>>>  File "./cerbero/commands/__init__.py", line 78, in run
>>>>
>>>>    return _commands[command].run(config, args)
>>>>
>>>>  File "./cerbero/commands/package.py", line 82, in run
>>>>
>>>>    pkg = Packager(config, p, self.store)
>>>>
>>>>  File "./cerbero/packages/packager.py", line 53, in __new__
>>>>
>>>>    return _packagers[d][v](config, package, store)
>>>>
>>>>  File "./cerbero/packages/debian.py", line 448, in __new__
>>>>
>>>>    return DebianPackager(config, package, store)
>>>>
>>>>  File "./cerbero/packages/debian.py", line 187, in __init__
>>>>
>>>>    self.license = f.read()
>>>>
>>>>  File "/usr/lib/python3.5/encodings/ascii.py", line 26, in decode
>>>>
>>>>    return codecs.ascii_decode(input, self.errors)[0]
>>>>
>>>> UnicodeDecodeError: 'ascii' codec can't decode byte 0xef in position 0:
>>>> ordinal not in range(128)
>>>>
>>>>
>>>>
>>>> I’ve confirmed that I get the same error when running a native build in
>>>> a docker container on an x86_64 VM so this problem is not specific to the
>>>> ARM architecture.
>>>>
>>>> Does anyone have a solution for this issue?
>>>>
>>>> This crash is unrelated to the harmless warnings. It's reading from
>>>> file expecting ASCII and hit some utf8 char, and crash. Can you file a bug
>>>> to bugs.gnome.org with that backtrace attached.
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> Regards,
>>>>
>>>>
>>>>
>>>> ---
>>>>
>>>> Matthew Thyer
>>>>
>>>> (08) 8313 9283
>>>>
>>>> 4.38 Ingkarni Wardli
>>>>
>>>> Adelaide University
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> gstreamer-devel mailing list
>>>> gstreamer-devel at lists.freedesktop.org
>>>> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>>>>
>>>> _______________________________________________
>>>> gstreamer-devel mailing list
>>>> gstreamer-devel at lists.freedesktop.org
>>>> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>>>>
>>>> _______________________________________________
>>>> gstreamer-devel mailing list
>>>> gstreamer-devel at lists.freedesktop.org
>>>> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>>>>
>>> _______________________________________________
>>> gstreamer-devel mailing list
>>> gstreamer-devel at lists.freedesktop.org
>>> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>>>
>> _______________________________________________
>> gstreamer-devel mailing list
>> gstreamer-devel at lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>>
>
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20180507/09ea0731/attachment-0001.html>


More information about the gstreamer-devel mailing list