Bug 227897 - multimedia/gstreamer1-editing-services GES-1.0 hangs forever
Summary: multimedia/gstreamer1-editing-services GES-1.0 hangs forever
Status: Open
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: amd64 Any
: --- Affects Many People
Assignee: Koop Mast
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-05-01 12:22 UTC by mikhail.rokhin
Modified: 2019-08-19 12:59 UTC (History)
4 users (show)

See Also:
bugzilla: maintainer-feedback? (multimedia)


Attachments
svn-diff-gstreamer1-editing-services_pkg-plist (2.16 KB, patch)
2018-11-09 23:58 UTC, Walter Schwarzenfeld
no flags Details | Diff
svn-diff-gstreamer1-editing-services_pkg-plist_v2 (2.28 KB, patch)
2018-12-24 11:08 UTC, Walter Schwarzenfeld
no flags Details | Diff
workaround-svn-diff-ges_v2 (2.53 KB, patch)
2018-12-25 12:02 UTC, Walter Schwarzenfeld
no flags Details | Diff
workaround-svn-diff-ges_v3 (2.68 KB, patch)
2018-12-25 12:31 UTC, Walter Schwarzenfeld
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description mikhail.rokhin 2018-05-01 12:22:28 UTC
The process GES-1.0 hangs forever, stopping from compilation right in the middle.

So I switched it off from conf of above port gstreamer1-plugins-all-1.12

ports tree , kernel & world latest.

Thank you for development.
Comment 1 VVD 2018-11-09 18:32:31 UTC
11.2 amd64
…
===>  Installing for gstreamer1-editing-services-1.14.4
===>  Checking if gstreamer1-editing-services already installed
===>   Registering installation for gstreamer1-editing-services-1.14.4 as automatic
pkg-static: Unable to access file /tmp/work/usr/ports/multimedia/gstreamer1-editing-services/work/stage/usr/local/lib/python3.6/site-packages/gstreamer-editing-services/GES.py:No such file or directory
*** Error code 74
…

# find /tmp/work/usr/ports/multimedia/gstreamer1-editing-services/work/stage/usr/local/ -name GES.py
/tmp/work/usr/ports/multimedia/gstreamer1-editing-services/work/stage/usr/local/lib/python2.7/site-packages/gstreamer-editing-services/GES.py
Comment 2 VVD 2018-11-09 22:29:09 UTC
11.2 i386

Freezes compiling with last lines:
g-ir-scanner: link: ../libtool --mode=link --tag=CC cc -o /usr/obj/usr/ports/multimedia/gstreamer1-editing-services/work/gstreamer-editing-services-1.14.4/ges/tmp-introspect9ymrrm4v/GES-1.0 -export-dynamic -O2 -pipe -march=prescott -fstack-protector -fno-strict-aliasing /usr/obj/usr/ports/multimedia/gstreamer1-editing-services/work/gstreamer-editing-services-1.14.4/ges/tmp-introspect9ymrrm4v/GES-1.0.o -L. libges-1.0.la -L/usr/local/lib -Wl,--export-dynamic -lgmodule-2.0 -pthread -lglib-2.0 -lgstpbutils-1.0 -lgstcontroller-1.0 -lgstreamer-1.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lintl -fstack-protector
libtool: link: cc -o /usr/obj/usr/ports/multimedia/gstreamer1-editing-services/work/gstreamer-editing-services-1.14.4/ges/tmp-introspect9ymrrm4v/.libs/GES-1.0 -O2 -pipe -march=prescott -fstack-protector -fno-strict-aliasing /usr/obj/usr/ports/multimedia/gstreamer1-editing-services/work/gstreamer-editing-services-1.14.4/ges/tmp-introspect9ymrrm4v/GES-1.0.o -Wl,--export-dynamic -pthread -fstack-protector -Wl,--export-dynamic  -L. ./.libs/libges-1.0.so -L/usr/local/lib -lgmodule-2.0 -lgstpbutils-1.0 -lgstcontroller-1.0 -lgstreamer-1.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lintl -pthread -Wl,-rpath -Wl,/usr/local/lib

Top show this process eating 100% of one core:
> 89291 root            1 123   20 15988K 10256K CPU0    0 161:09 104.00% [GES-1.0]

# ps wwww 89291
  PID TT  STAT    TIME COMMAND
89291  1  TNX+ 3:25,33 /usr/obj/usr/ports/multimedia/gstreamer1-editing-services/work/gstreamer-editing-services-1.14.4/ges/tmp-introspect9ymrrm4v/.libs/GES-1.0 --introspect-dump=/usr/obj/usr/ports/multimedia/gstreamer1-editing-services/work/gstreamer-editing-services-1.14.4/ges/tmp-introspect9ymrrm4v/functions.txt,/usr/obj/usr/ports/multimedia/gstreamer1-editing-services/work/gstreamer-editing-services-1.14.4/ges/tmp-introspect9ymrrm4v/dump.xml

# gdb /usr/obj/usr/ports/multimedia/gstreamer1-editing-services/work/gstreamer-editing-services-1.14.4/ges/tmp-introspect9ymrrm4v/.libs/GES-1.0 89291
…
(gdb) bt
#0  0x2860565f in _read () from /lib/libc.so.7
#1  0x284bbb11 in pthread_suspend_all_np () from /lib/libthr.so.3
#2  0x2850a8ff in read () from /lib/libc.so.7
#3  0x281ad2fe in _gst_plugin_loader_client_run () from /usr/local/lib/libgstreamer-1.0.so.0
#4  0x281acd89 in gst_plugin_feature_rank_compare_func () from /usr/local/lib/libgstreamer-1.0.so.0
#5  0x281b93af in gst_update_registry () from /usr/local/lib/libgstreamer-1.0.so.0
#6  0x28151187 in gst_init_get_option_group () from /usr/local/lib/libgstreamer-1.0.so.0
#7  0x2840b978 in g_option_context_parse () from /usr/local/lib/libglib-2.0.so.0
#8  0x28151398 in gst_init_check () from /usr/local/lib/libgstreamer-1.0.so.0
#9  0x28151429 in gst_init () from /usr/local/lib/libgstreamer-1.0.so.0
#10 0x0804a91b in main ()
Comment 3 VVD 2018-11-09 23:38:07 UTC
Removed all gstreamer1 ports on 11.2 i386, then building of the multimedia/gstreamer1-editing-services show same error as on amd64:
===>  Installing for gstreamer1-editing-services-1.14.4
===>  Checking if gstreamer1-editing-services already installed
===>   Registering installation for gstreamer1-editing-services-1.14.4 as automatic
pkg-static: Unable to access file /tmp/work/usr/ports/multimedia/gstreamer1-editing-services/work/stage/usr/local/lib/python3.6/site-packages/gstreamer-editing-services/GES.py:No such file or directory
*** Error code 74
Comment 4 Walter Schwarzenfeld freebsd_triage 2018-11-09 23:48:51 UTC
pkg-plist-error:
====> Checking for pkg-plist issues (check-plist)
===> Parsing plist
===> Checking for items in STAGEDIR missing from pkg-plist
Error: Orphaned: lib/gst-validate-launcher/python/launcher/apps/geslaunch.py
Error: Orphaned: lib/python2.7/site-packages/gstreamer-editing-services/GES.py
Error: Orphaned: lib/python2.7/site-packages/gstreamer-editing-services/GES.pyc
Error: Orphaned: lib/python2.7/site-packages/gstreamer-editing-services/GES.pyo
Error: Orphaned: share/gstreamer-%%VERSION%%/validate/scenarios/ges-edit-clip-while-paused.scenario
===> Checking for items in pkg-plist which are not in STAGEDIR
Error: Missing: %%PYTHON_SITELIBDIR%%/gstreamer-editing-services/GES.py
===> Error: Plist issues found.
*** Error code 1
Comment 5 Walter Schwarzenfeld freebsd_triage 2018-11-09 23:58:52 UTC
Created attachment 199102 [details]
svn-diff-gstreamer1-editing-services_pkg-plist
Comment 6 Walter Schwarzenfeld freebsd_triage 2018-12-24 11:08:24 UTC
Created attachment 200442 [details]
svn-diff-gstreamer1-editing-services_pkg-plist_v2

Updated patch (cause of Portrevision).
Comment 7 Walter Schwarzenfeld freebsd_triage 2018-12-25 12:02:58 UTC
Created attachment 200494 [details]
workaround-svn-diff-ges_v2

Has a configureerror. Does not find the right python version.
This patch is an "ugly" workaround, found for the moment no better way.
Comment 8 Walter Schwarzenfeld freebsd_triage 2018-12-25 12:31:26 UTC
Created attachment 200498 [details]
workaround-svn-diff-ges_v3

Corrected pkg-plist (missing "/" before %%PYTHON_SITELIBDIR%%).
Comment 9 commit-hook freebsd_committer 2018-12-25 19:14:55 UTC
A commit references this bug:

Author: kwm
Date: Tue Dec 25 19:14:28 UTC 2018
New revision: 488335
URL: https://svnweb.freebsd.org/changeset/ports/488335

Log:
  Add missing files to the plist.

  PR:		227897

Changes:
  head/multimedia/gstreamer1-editing-services/Makefile
  head/multimedia/gstreamer1-editing-services/pkg-plist
Comment 10 Koop Mast freebsd_committer 2018-12-25 19:17:24 UTC
Hello, can you try again? I have added the missing python files to the plist.

There should not be any python2.7 files, since the port uses python3 exclusive. If there is still a problem please report it here, I will keep this PR open for now.
Comment 11 Walter Schwarzenfeld freebsd_triage 2018-12-25 20:36:49 UTC
Maybe, I misinterpreted something. But if you grep PYTHON_VERSION you got
in the source Makefiles:

PYTHON_VERSION = 2.7
and
pyexecdir = ${exec_prefix}/lib/python2.7/site-packages
pythondir = ${prefix}/lib/python2.7/site-packages
Comment 12 Walter Schwarzenfeld freebsd_triage 2018-12-25 20:37:24 UTC
After I run "make".
Comment 13 Walter Schwarzenfeld freebsd_triage 2018-12-25 20:40:10 UTC
and still fails to install

===>   Registering installation for gstreamer1-editing-services-1.14.4_2
pkg-static: Unable to access file /ram/usr/ports/multimedia/gstreamer1-editing-services/work/stage/usr/local/lib/python3.6/site-packages/gstreamer-editing-services/GES.py:No such file or directory
pkg-static: Unable to access file /ram/usr/ports/multimedia/gstreamer1-editing-services/work/stage/usr/local/lib/python3.6/site-packages/gstreamer-editing-services/__pycache__/GES.cpython-36.opt-1.pyc:No such file or directory
pkg-static: Unable to access file /ram/usr/ports/multimedia/gstreamer1-editing-services/work/stage/usr/local/lib/python3.6/site-packages/gstreamer-editing-services/__pycache__/GES.cpython-36.pyc:No such file or directory
*** Error code 74

Stop.
make[1]: stopped in /usr/ports/multimedia/gstreamer1-editing-services
*** Error code 1

/etc/make.conf
DEFAULT_VERSIONS+=python=2.7 python2=2.7 python3=3.6 ssl=libressl perl5=5.28 linux=c6_64 ruby=2.4
Comment 14 Walter Schwarzenfeld freebsd_triage 2018-12-25 20:54:21 UTC
configure checks in this way PYTHON_VERSION
 16312     PYTHON_VERSION=`$PYTHON -c "import sys; print sys.version[:3]"`

and this results on my system in
python -c "import sys; print sys.version[:3]"
2.7
Comment 15 Koop Mast freebsd_committer 2018-12-25 21:45:30 UTC
This happens because python and/or python2 is installed and configure is "smart" to ignoring it's own overrides. A quick check didn't give me a solution so I will have to work out a fix for this issue later.
Comment 16 Walter Schwarzenfeld freebsd_triage 2018-12-25 22:15:00 UTC
Comment on attachment 200498 [details]
workaround-svn-diff-ges_v3

Obsolete workaround patch, does not work anymore.
Comment 17 VVD 2018-12-25 23:49:17 UTC
(In reply to commit-hook from comment #9)
> URL: https://svnweb.freebsd.org/changeset/ports/488335
Nothing changed:
===>  Installing for gstreamer1-editing-services-1.14.4_2
===>  Checking if gstreamer1-editing-services already installed
===>   Registering installation for gstreamer1-editing-services-1.14.4_2
pkg-static: Unable to access file /tmp/work/usr/ports/multimedia/gstreamer1-editing-services/work/stage/usr/local/lib/python3.6/site-packages/gstreamer-editing-services/GES.py:No such file or directory
pkg-static: Unable to access file /tmp/work/usr/ports/multimedia/gstreamer1-editing-services/work/stage/usr/local/lib/python3.6/site-packages/gstreamer-editing-services/__pycache__/GES.cpython-36.opt-1.pyc:No such file or directory
pkg-static: Unable to access file /tmp/work/usr/ports/multimedia/gstreamer1-editing-services/work/stage/usr/local/lib/python3.6/site-packages/gstreamer-editing-services/__pycache__/GES.cpython-36.pyc:No such file or directory
*** Error code 74

# ls -d /tmp/work/usr/ports/multimedia/gstreamer1-editing-services/work/stage/usr/local/lib/python*
/tmp/work/usr/ports/multimedia/gstreamer1-editing-services/work/stage/usr/local/lib/python2.7

There is python2.7 dir, but not python3.6.
Comment 18 VVD 2018-12-25 23:53:02 UTC
One more:

# ls -l /tmp/work/usr/ports/multimedia/gstreamer1-editing-services/work/stage/usr/local/lib/python2.7/site-packages/gstreamer-editing-services/
total 12
-rw-r--r--  1 root  wheel  2651 26 дек.  02:43 GES.py
-rw-r--r--  1 root  wheel  2432 26 дек.  02:43 GES.pyc
-rw-r--r--  1 root  wheel  2432 26 дек.  02:43 GES.pyo

But it search for "__pycache__/GES.cpython-36.opt-1.pyc" and "__pycache__/GES.cpython-36.pyc".
Comment 19 VVD 2019-03-30 01:09:29 UTC
12.0 amd64 and i386 - both build without errors now.
Comment 20 Walter Schwarzenfeld freebsd_triage 2019-04-18 21:11:48 UTC
Works also for me on 11.2.
Comment 21 Ting-Wei Lan 2019-08-19 11:07:43 UTC
I can still reproduce the issue on FreeBSD 12.0 with 'poudriere testport' by manually installing python2 in the environment:

====> Checking for pkg-plist issues (check-plist)
===> Parsing plist
===> Checking for items in STAGEDIR missing from pkg-plist
Error: Orphaned: lib/python2.7/site-packages/gstreamer-editing-services/GES.py
Error: Orphaned: lib/python2.7/site-packages/gstreamer-editing-services/GES.pyc
Error: Orphaned: lib/python2.7/site-packages/gstreamer-editing-services/GES.pyo
===> Checking for items in pkg-plist which are not in STAGEDIR
Error: Missing: %%PYTHON_SITELIBDIR%%/gstreamer-editing-services/GES.py
Error: Missing: %%PYTHON_SITELIBDIR%%/gstreamer-editing-services/__pycache__/GES.cpython-36.opt-1.pyc
Error: Missing: %%PYTHON_SITELIBDIR%%/gstreamer-editing-services/__pycache__/GES.cpython-36.pyc
===> Error: Plist issues found.
*** Error code 1

Stop.
make: stopped in /usr/ports/multimedia/gstreamer1-editing-services
Comment 22 Walter Schwarzenfeld freebsd_triage 2019-08-19 11:18:33 UTC
Reopen, see comment21.
Comment 23 Walter Schwarzenfeld freebsd_triage 2019-08-19 12:17:54 UTC
The port has 

USES= python:3.6+ and 3.6 is DEFAULT_VERSION:

I cannot reproduce anymore.
Comment 24 Ting-Wei Lan 2019-08-19 12:26:40 UTC
(In reply to Walter Schwarzenfeld from comment #23)
To reproduce it, install lang/python2 before trying to build multimedia/gstreamer1-editing-services.

If you want to reproduce it in poudriere, run 'poudriere testport -i multimedia/gstreamer1-editing-services'. The build will succeed, and a shell will be opened for you. Type 'cd /usr/ports/lang/python2 && make install clean && cd /usr/ports/multimedia/gstreamer1-editing-services && make clean check-plist' in the shell and see it to fail.
Comment 25 Walter Schwarzenfeld freebsd_triage 2019-08-19 12:50:16 UTC
Ok. But why you try to build something with python2.7 who has definite USES=python3.6+ and no flavors?
Comment 26 Walter Schwarzenfeld freebsd_triage 2019-08-19 12:58:18 UTC
Sorry, I understand. You mean it fails if python27 is installed.
Comment 27 Ting-Wei Lan 2019-08-19 12:59:34 UTC
(In reply to Walter Schwarzenfeld from comment #25)
I don't try to build it with Python 2.7. It is gstreamer1-editing-services that prefers Python 2 to Python 3, and PYTHON environment variable set by ports isn't able to override its decision. It isn't a problem in poudriere, but it is likely to affect people who build ports on the system directly.