No specific packager available for the distro version ubuntu_16_04_xenial

Matthew Thyer matthew.thyer at adelaide.edu.au
Wed May 9 07:17:03 UTC 2018


Nicolas,

I was initially distressed to hear that the GStreamer project delegates packaging to the Linux distros and hence the information on the "Building from source using Cerbero" web page was misleading (as it’s not what is actually used) but then I refocussed on the fact that I don’t actually need packaging as I’m just looking for the answer to how to build GStreamer from source.

I’ve read a bit further on the "Building from source using Cerbero" web page<https://gstreamer.freedesktop.org/documentation/installing/building-from-source-using-cerbero.html> and noticed something which I’d missed before regarding the prefix for the building. Under the heading “Build a single project with GStreamer” there’s the text “By default, Cerbero uses as prefix a folder in the user directory with the following schema ~/cerbero/dist/$platform_$arch” and that this prefix can be changed by using a “custom configuration file named custom.cbc”. It then gives an example on how to specify the prefix for various platforms.

I’ve tested this and my cerbero created packages look much better. I’m yet to test installation of the packages in a minimal system and to see if my application works but I’m feeling a lot closer.

My build process is now:
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. echo prefix=\'/usr/local/gstreamer\' >~/custom.cbc
11. perl -pi -e 's/[^[:ascii:]]//g' packages/gstreamer-1.0/license.txt
12. ./cerbero-uninstalled -c ~/custom.cbc package gstreamer-1.0

Do you think this may meet my requirements for simply being able to build and use any version of GStreamer?
If yes, then cerbero is still useful and we just need to fix it to be able to handle UTF-8 text in the packages/gstreamer-1.0/license.txt file.
I would also like to fix the cross compilation to be able to build for the ARMv7 hard float architecture so as to be useful for the Raspberry Pi 2, 3, 3B+ but I’ll work on that.

P.S. I tried to make Outlook reply to your emails correctly (indenting and allow me to comment inline but it’s very hard so please forgive yet another top posted reply).

From: gstreamer-devel <gstreamer-devel-bounces at lists.freedesktop.org> On Behalf Of Nicolas Dufresne
Sent: Monday, 7 May 2018 11:43 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 15:42, David Ing <ding at panopto.com<mailto: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<mailto:nicolas at ndufresne.ca>> wrote:

Le lun. 7 mai 2018 08:57, Matthew Thyer <matthew.thyer at adelaide.edu.au<mailto: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<http://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<mailto: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<mailto: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<mailto: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<mailto: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<mailto: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<mailto: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<mailto: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<mailto: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<mailto: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<http://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<mailto:gstreamer-devel at lists.freedesktop.org>
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
_______________________________________________
gstreamer-devel mailing list
gstreamer-devel at lists.freedesktop.org<mailto:gstreamer-devel at lists.freedesktop.org>
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
_______________________________________________
gstreamer-devel mailing list
gstreamer-devel at lists.freedesktop.org<mailto:gstreamer-devel at lists.freedesktop.org>
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
_______________________________________________
gstreamer-devel mailing list
gstreamer-devel at lists.freedesktop.org<mailto:gstreamer-devel at lists.freedesktop.org>
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
_______________________________________________
gstreamer-devel mailing list
gstreamer-devel at lists.freedesktop.org<mailto: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/20180509/70a8e669/attachment-0001.html>


More information about the gstreamer-devel mailing list