Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 638646 - media-video/vcdimager-0.7.24 Build fail after upgrading to dev-libs/libcdio-1.0.0 - info.lo] Error 1
Summary: media-video/vcdimager-0.7.24 Build fail after upgrading to dev-libs/libcdio-1...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Gentoo Media-video project
URL: http://savannah.gnu.org/support/?109421
Whiteboard:
Keywords: PATCH
: 638754 640314 (view as bug list)
Depends on:
Blocks: 640340
  Show dependency tree
 
Reported: 2017-11-24 00:06 UTC by Denis Descheneaux
Modified: 2018-01-29 19:33 UTC (History)
30 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
build.log (build.log,36.65 KB, text/x-log)
2017-11-24 00:06 UTC, Denis Descheneaux
Details
emerge --info (info.txt,28.34 KB, text/plain)
2017-11-24 00:14 UTC, Denis Descheneaux
Details
build.log w/ dev-libs/libcdio-1.0.0-r1 (build.log,36.92 KB, text/x-log)
2017-11-24 16:14 UTC, Denis Descheneaux
Details
Change the API-calls for libdcio functions to the new API (libcdio-100.patch,8.03 KB, patch)
2017-11-26 10:03 UTC, Michael Baer
Details | Diff
vcdimager-0.7.24.ebuild (vcdimager-0.7.24.ebuild,1.40 KB, text/plain)
2017-11-26 20:07 UTC, Denis Descheneaux
Details
Addtional patch for libcdio-2.0.0 (vcdimager-0.7.24-libcdio2.patch,402.63 KB, patch)
2018-01-02 16:48 UTC, Helmut Jarausch
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Denis Descheneaux 2017-11-24 00:06:07 UTC
Created attachment 506236 [details]
build.log

!!! existing preserved libs:
>>> package: dev-libs/libcdio-1.0.0


 *  - /usr/lib32/libcdio.so.16
 *  - /usr/lib32/libcdio.so.16.0.0
 *      used by /usr/lib32/gstreamer-1.0/libgstcdio.so (media-plugins/gst-plugins-cdio-1.12.3)
 *      used by /usr/lib32/libvcdinfo.so.0.2.0 (media-video/vcdimager-0.7.24)
 *  - /usr/lib64/libcdio.so.16
 *  - /usr/lib64/libcdio.so.16.0.0
 *      used by /usr/bin/cdxa2mpeg (media-video/vcdimager-0.7.24)
 *      used by /usr/bin/vcd-info (media-video/vcdimager-0.7.24)
 *      used by /usr/bin/vcdimager (media-video/vcdimager-0.7.24)
 *      used by 8 other files

Fail to preserve-rebuild after upgrade to dev-libs/libcdio-1.0.0
Comment 1 Denis Descheneaux 2017-11-24 00:14:43 UTC
Created attachment 506244 [details]
emerge --info
Comment 2 email200202 2017-11-24 12:29:17 UTC
Same here
Comment 3 Juergen Rose 2017-11-24 13:33:20 UTC
Me too.
Comment 4 Denis Descheneaux 2017-11-24 16:12:56 UTC
Fails again with latest revision of dev-libs/libcdio-1.0.0-r1
Comment 5 Denis Descheneaux 2017-11-24 16:14:01 UTC
Created attachment 506268 [details]
build.log w/ dev-libs/libcdio-1.0.0-r1
Comment 6 Mike Auty (RETIRED) gentoo-dev 2017-11-25 14:16:14 UTC
*** Bug 638754 has been marked as a duplicate of this bug. ***
Comment 7 Michael Baer 2017-11-26 10:03:09 UTC
Created attachment 506642 [details, diff]
Change the API-calls for libdcio functions to the new API

Feel free to use the attached patch (at your own risk).

It should update all the old API calls.

I've stored the patch to /etc/portage/patches/media-video/vcdimager-0.7.24/
and enabled epatch_user (https://wiki.gentoo.org/wiki//etc/portage/patches#EAPI_5_and_older)
Comment 8 Denis Descheneaux 2017-11-26 20:06:54 UTC
Using patch from comment above, make 2 changes to ebuild

-EAPI=6
+EAPI=6

src_prepare() {
+	eapply_user
Comment 9 Denis Descheneaux 2017-11-26 20:07:49 UTC
Created attachment 506770 [details]
vcdimager-0.7.24.ebuild
Comment 10 Michael Orlitzky gentoo-dev 2017-11-26 20:46:55 UTC
This patch is almost identical to the one on the upstream bug report, so they both must be correct =)

Does the patched vcdimager still build against the two older versions libcdio-0.93 and libcdio-0.94-r1?
Comment 11 Attila Tóth 2017-11-28 12:18:42 UTC
Patch works for me, thanks!
Comment 12 Andrew 2017-12-01 04:55:08 UTC
Patch works for me too, , thanks!
Comment 13 Silvio 2017-12-03 21:43:37 UTC
When in upstream?
Comment 14 Silvio 2017-12-07 06:39:08 UTC
News? It is blocking my "memerge -e world" after upgrading to profile 17
Comment 15 email200202 2017-12-08 03:42:46 UTC
Any updates?

If there is a workable fix, what is holding it?
Comment 16 Larry the Git Cow gentoo-dev 2017-12-09 11:37:37 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=42e884c9270107f3a8d8bda29cbed0f8db6755cd

commit 42e884c9270107f3a8d8bda29cbed0f8db6755cd
Author:     Andreas Sturmlechner <asturm@gentoo.org>
AuthorDate: 2017-12-09 10:47:43 +0000
Commit:     Andreas Sturmlechner <asturm@gentoo.org>
CommitDate: 2017-12-09 11:37:00 +0000

    media-video/vcdimager: Fix build w/ dev-libs/libcdio-1.0.0
    
    Closes: https://bugs.gentoo.org/638646
    Package-Manager: Portage-2.3.17, Repoman-2.3.6

 .../files/vcdimager-0.7.24-libcdio-1.0.0.patch     | 230 +++++++++++++++++++++
 media-video/vcdimager/vcdimager-0.7.24.ebuild      |   2 +
 2 files changed, 232 insertions(+)
Comment 17 Andreas Sturmlechner gentoo-dev 2017-12-09 15:59:31 UTC
*** Bug 640314 has been marked as a duplicate of this bug. ***
Comment 18 Randy Andy 2017-12-12 18:18:15 UTC
Marked as solved, but now it fails to build against dev-libs/libcdio-1.1.0 ;-)
Comment 19 Silvio 2017-12-19 14:14:58 UTC
(In reply to Randy Andy from comment #18)
> Marked as solved, but now it fails to build against dev-libs/libcdio-1.1.0
> ;-)

I confirm, it is not solved
Comment 20 email200202 2018-01-02 13:26:35 UTC
I also can confirm that it fails to build. It should not be marked as resolved.
Comment 21 Andreas Proteus 2018-01-02 14:09:15 UTC
It also fails to build against the latest libcdio-2.0.0
Comment 22 Attila Tóth 2018-01-02 14:27:41 UTC
(In reply to Andreas Proteus from comment #21)
> It also fails to build against the latest libcdio-2.0.0

They were changing API without warning. They did the version bump after they were told to do so. Upstreams promised to fix vcdimager, they were telling mplayer and a lot of softwares compile against libcdio-2.0.0. However mpd also seems to have problems with it. However a valuable code clean up is happening in the mean time, so newer versions have less leaks.
Comment 23 Helmut Jarausch 2018-01-02 16:47:34 UTC
I've compared the CVS version from cvs.savannah.gnu.org:/sources/vcdimager
with vcdimager-0.7.24 and thus I've created the attached patch.
With this, it compiles just fine with libcdio-2.0.0.
Comment 24 Helmut Jarausch 2018-01-02 16:48:28 UTC
Created attachment 512744 [details, diff]
Addtional patch for libcdio-2.0.0
Comment 25 email200202 2018-01-03 04:33:26 UTC
I tried your patch but it didn't work. Why the status of this bug is still "FIXED"?

 * Applying vcdimager-0.7.24-libcdio-1.0.0.patch ...                                                         [ ok ]
 * Applying libcdio-2.0.0.patch ...
4 out of 7 hunks FAILED -- saving rejects to file lib/dict.h.rej                                             [ !! ]
 * ERROR: media-video/vcdimager-0.7.24::gentoo failed (prepare phase):
 *   patch -p1  failed with /etc/portage/patches/media-video/vcdimager/libcdio-2.0.0.patch
Comment 26 James 2018-01-03 05:47:15 UTC
(In reply to email200202 from comment #25)
> I tried your patch but it didn't work. Why the status of this bug is still
> "FIXED"?
> 
>  * Applying vcdimager-0.7.24-libcdio-1.0.0.patch ...                        
> [ ok ]
>  * Applying libcdio-2.0.0.patch ...
> 4 out of 7 hunks FAILED -- saving rejects to file lib/dict.h.rej            
> [ !! ]
>  * ERROR: media-video/vcdimager-0.7.24::gentoo failed (prepare phase):
>  *   patch -p1  failed with
> /etc/portage/patches/media-video/vcdimager/libcdio-2.0.0.patch

Same Problem here.
I thought maybe the patches were just duplicating some changes, so I set up an ebuild just using the libcdio-2.0.0.patch...  NOPE, way more failed hunks.

Just a question, do I understand that this change in the API on libcdio is going to cause problems in a number of other packages as well?

https://bugs.gentoo.org/638646#c22

> They were changing API without warning. They did the version bump after they
> were told to do so. Upstreams promised to fix vcdimager, they were telling 
> mplayer and a lot of softwares compile against libcdio-2.0.0. However mpd also 
> seems to have problems with it. However a valuable code clean up is happening 
> in the mean time, so newer versions have less leaks.
Comment 27 Attila Tóth 2018-01-03 11:39:50 UTC
(In reply to James from comment #26)
> (In reply to email200202 from comment #25)
> > I tried your patch but it didn't work. Why the status of this bug is still
> > "FIXED"?
> > 
> >  * Applying vcdimager-0.7.24-libcdio-1.0.0.patch ...                        
> > [ ok ]
> >  * Applying libcdio-2.0.0.patch ...
> > 4 out of 7 hunks FAILED -- saving rejects to file lib/dict.h.rej            
> > [ !! ]
> >  * ERROR: media-video/vcdimager-0.7.24::gentoo failed (prepare phase):
> >  *   patch -p1  failed with
> > /etc/portage/patches/media-video/vcdimager/libcdio-2.0.0.patch
> 
> Same Problem here.
> I thought maybe the patches were just duplicating some changes, so I set up
> an ebuild just using the libcdio-2.0.0.patch...  NOPE, way more failed hunks.
> 
> Just a question, do I understand that this change in the API on libcdio is
> going to cause problems in a number of other packages as well?
> 
> https://bugs.gentoo.org/638646#c22

The API has changed by the advent of 1.0.0/1.1.0. Many packages were prepared for the change. I had to patch only 2 packages as I remember. Now the API changed again with 2.0.0. Mpd may also have problems. I think if more packages pop up, it would worth to set up a tracker bug for this version. Gentoo is ahead of other distros regarding the version of libcdio and I could find no definitive solution. I masked the package on my systems for now.
Comment 28 rbrown4014 2018-01-09 21:49:28 UTC
I was able to get this to build using libcdio2.0.0, It involved a combination of things, so I will lay that out here, so others dont have this problem.

1. First we have to edit the ebuild to disable using the 1.0.0 patch in portage, and allow user patches. Then re-manifest the ebuild.

2. Add both the patch files that are attached here in both comment 7 and comment 24 to /etc/portage/patches/media-video/vcdimager/ Make sure you name the files so the patch from comment 7 is applied first. Naming the file from comment 7 libcdio-1.0.0.patch and naming the file from comment 24 libcdio-2.0.0.patch did the trick for me.

3. build it. 

I should note that the patch from comment 24 did not work if using the built in patch in portage for libcdio-1.0.0, and it didnt apply if you didnt patch for libcdio-1.0.0 at all. This is a dirty way to do this.
Comment 29 Attila Tóth 2018-01-12 11:10:31 UTC
(In reply to rbrown4014 from comment #28)
> I was able to get this to build using libcdio2.0.0, It involved a
> combination of things, so I will lay that out here, so others dont have this
> problem.
> 
> 1. First we have to edit the ebuild to disable using the 1.0.0 patch in
> portage, and allow user patches. Then re-manifest the ebuild.
> 
> 2. Add both the patch files that are attached here in both comment 7 and
> comment 24 to /etc/portage/patches/media-video/vcdimager/ Make sure you name
> the files so the patch from comment 7 is applied first. Naming the file from
> comment 7 libcdio-1.0.0.patch and naming the file from comment 24
> libcdio-2.0.0.patch did the trick for me.
> 
> 3. build it. 
> 
> I should note that the patch from comment 24 did not work if using the built
> in patch in portage for libcdio-1.0.0, and it didnt apply if you didnt patch
> for libcdio-1.0.0 at all. This is a dirty way to do this.

Works for me. A user-patch-only alternative is to prepare a revert patch for the one gets applied by the ebuild. If that comes first the other two can follow.
Comment 30 rbrown4014 2018-01-12 23:31:45 UTC
(In reply to Attila Tóth from comment #29)
> (In reply to rbrown4014 from comment #28)
> > I was able to get this to build using libcdio2.0.0, It involved a
> > combination of things, so I will lay that out here, so others dont have this
> > problem.
> > 
> > 1. First we have to edit the ebuild to disable using the 1.0.0 patch in
> > portage, and allow user patches. Then re-manifest the ebuild.
> > 
> > 2. Add both the patch files that are attached here in both comment 7 and
> > comment 24 to /etc/portage/patches/media-video/vcdimager/ Make sure you name
> > the files so the patch from comment 7 is applied first. Naming the file from
> > comment 7 libcdio-1.0.0.patch and naming the file from comment 24
> > libcdio-2.0.0.patch did the trick for me.
> > 
> > 3. build it. 
> > 
> > I should note that the patch from comment 24 did not work if using the built
> > in patch in portage for libcdio-1.0.0, and it didnt apply if you didnt patch
> > for libcdio-1.0.0 at all. This is a dirty way to do this.
> 
> Works for me. A user-patch-only alternative is to prepare a revert patch for
> the one gets applied by the ebuild. If that comes first the other two can
> follow.

There is no point in that, as you have to edit the ebuild anyway to enable user patches, so commenting out the patch line in the ebuild makes more sense, than writing another patch that then reverts the first patch. Make much more sense to not apply the patch in the first place.
Comment 31 Ivo Steinmann 2018-01-23 23:17:55 UTC
Just tested the portage version. It still fails with libcdio-2.0.0?!?
Comment 32 SpanKY gentoo-dev 2018-01-29 19:33:34 UTC
for future reference, since this changed the installed header file, this needed a revbump.  otherwise people won't have the /usr/include/libvcd/info.h update which breaks when packages (like xine-lib) include it.

this bug is about building with libcdio-1.0.0 and in that regard, is fixed.  if you want to discuss libcdio-1.1.0 or newer, then use bug 641550 which is already open and tracking this issue.