Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
How to fix ebuilds
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Portage & Programming
View previous topic :: View next topic  
Author Message
emc
Guru
Guru


Joined: 02 Jul 2004
Posts: 530
Location: Cracow, Poland

PostPosted: Tue Aug 26, 2014 12:13 pm    Post subject: How to fix ebuilds Reply with quote

Hi,
I try clean up after repoman report and don't know how?
1. machinarium:
Code:
RepoMan scours the neighborhood...
  dependency.bad                4
   games-puzzle/machinarium/machinarium-1.0.ebuild: DEPEND: ~amd64(hardened/linux/amd64/no-multilib) ['app-emulation/emul-linux-x86-baselibs', 'app-emulation/emul-linux-x86-gtklibs', 'app-emulation/emul-linux-x86-opengl', 'app-emulation/emul-linux-x86-xlibs']
   games-puzzle/machinarium/machinarium-1.0.ebuild: RDEPEND: ~amd64(hardened/linux/amd64/no-multilib) ['app-emulation/emul-linux-x86-baselibs', 'app-emulation/emul-linux-x86-gtklibs', 'app-emulation/emul-linux-x86-opengl', 'app-emulation/emul-linux-x86-xlibs']
   games-puzzle/machinarium/machinarium-1.0.ebuild: DEPEND: ~amd64(hardened/linux/amd64/no-multilib/selinux) ['app-emulation/emul-linux-x86-baselibs', 'app-emulation/emul-linux-x86-gtklibs', 'app-emulation/emul-linux-x86-opengl', 'app-emulation/emul-linux-x86-xlibs']
   games-puzzle/machinarium/machinarium-1.0.ebuild: RDEPEND: ~amd64(hardened/linux/amd64/no-multilib/selinux) ['app-emulation/emul-linux-x86-baselibs', 'app-emulation/emul-linux-x86-gtklibs', 'app-emulation/emul-linux-x86-opengl', 'app-emulation/emul-linux-x86-xlibs']

ebuild looks like this:
http://data.gpo.zugaina.org/emc/games-puzzle/machinarium/machinarium-1.0.ebuild
and
2. gcruft
Code:
RepoMan scours the neighborhood...
  portage.internal              1
   app-portage/gcruft/gcruft-0.1.1.ebuild: 'ecompress' called on line: 37

ebuild looks like this:
http://data.gpo.zugaina.org/emc/app-portage/gcruft/gcruft-0.1.1.ebuild
Back to top
View user's profile Send private message
nativemad
Developer
Developer


Joined: 30 Aug 2004
Posts: 892
Location: Switzerland

PostPosted: Sat Aug 30, 2014 5:09 pm    Post subject: Reply with quote

Hi,

you should not depend on multilib-packages, as the individual packages should also create the 32bit libs nowadays.
https://wiki.gentoo.org/wiki/Multilib_porting_status

Repoman explicitly checks for portage internal functions in ebuilds http://dev.gentoo.org/~zmedico/portage/doc/api/repoman.checks.PortageInternal-class.html
I would probably just deliver config.pm.new as seperate file within the files folder...

HTH, cheers
_________________
Power to the people!
Back to top
View user's profile Send private message
emc
Guru
Guru


Joined: 02 Jul 2004
Posts: 530
Location: Cracow, Poland

PostPosted: Fri Oct 10, 2014 3:11 pm    Post subject: Reply with quote

nativemad wrote:
Hi,

you should not depend on multilib-packages, as the individual packages should also create the 32bit libs nowadays.
https://wiki.gentoo.org/wiki/Multilib_porting_status

Repoman explicitly checks for portage internal functions in ebuilds http://dev.gentoo.org/~zmedico/portage/doc/api/repoman.checks.PortageInternal-class.html
I would probably just deliver config.pm.new as seperate file within the files folder...

HTH, cheers

Still, I don't know how to fix it :(
Back to top
View user's profile Send private message
nativemad
Developer
Developer


Joined: 30 Aug 2004
Posts: 892
Location: Switzerland

PostPosted: Wed Oct 22, 2014 4:19 am    Post subject: Reply with quote

emc wrote:

Still, I don't know how to fix it :(

Ok, for the first issue, move the emu-x86 dep to the real package that provides that lib. That package should deliver the 32bit lib even on amd64 nowadays.

The second issue is a bit tricky.... repoman scans the ebuild itself and sees that you are using an internal function. To avoid that report and keep the functionality, you could move that part of the code to a seperate file. I mean you basically create a new file anyway so why not just provide that instead of creating it via echo!?

HTH, just ask if something isn't clear.
_________________
Power to the people!
Back to top
View user's profile Send private message
emc
Guru
Guru


Joined: 02 Jul 2004
Posts: 530
Location: Cracow, Poland

PostPosted: Mon Nov 03, 2014 2:48 pm    Post subject: Reply with quote

nativemad wrote:

Ok, for the first issue, move the emu-x86 dep to the real package that provides that lib. That package should deliver the 32bit lib even on amd64 nowadays.

HTH, just ask if something isn't clear.

So, should I copy-paste all of libs form: http://www.gentoo.org/proj/en/base/amd64/emul/emul-linux-x86-20140508.xml
for baselibs, gtklibs, opengl and xlibs... it's like a lot....
machinarium-1.0.ebuild

or just use libs from RDEPEND section?
Back to top
View user's profile Send private message
mva
n00b
n00b


Joined: 01 Jun 2012
Posts: 5

PostPosted: Mon Nov 03, 2014 8:36 pm    Post subject: Reply with quote

Actually, I didn't checked content of emul-* used in gamerlay's machinarium ebuild (from where, it seems, you've copied it)
But, if multilib migration is over already, then it should be enough to just remove "amd64?()" section (and make sure it depends on multilib).

Anyway, you can check proper dependencies with:
Code:
qlist -e "$@" | xargs scanelf -L -n -q -F '%n #F' | tr , ' ' | xargs qfile -Cv | sort -u | awk '{print $1}' | uniq

(Assumes, you've working copy of the game installed)
Back to top
View user's profile Send private message
emc
Guru
Guru


Joined: 02 Jul 2004
Posts: 530
Location: Cracow, Poland

PostPosted: Thu Nov 06, 2014 9:48 am    Post subject: Reply with quote

mva wrote:
Actually, I didn't checked content of emul-* used in gamerlay's machinarium ebuild (from where, it seems, you've copied it)
But, if multilib migration is over already, then it should be enough to just remove "amd64?()" section (and make sure it depends on multilib).

Anyway, you can check proper dependencies with:
Code:
qlist -e "$@" | xargs scanelf -L -n -q -F '%n #F' | tr , ' ' | xargs qfile -Cv | sort -u | awk '{print $1}' | uniq

(Assumes, you've working copy of the game installed)

Yes, I've copied to my local overlay.
What you mean by and make sure it depends on multilib?

Check failed at first qlist:
Code:
$ eix machinarium
[I] games-puzzle/machinarium [1]
     Available versions:  (~)1.0^fm {multilib}
     Installed versions:  1.0^fm(04:24:17 PM 08/25/2014)(multilib)
     Homepage:            http://machinarium.net/
     Description:         Point-and-click adventure about robot in steam-punk world

[1] "mipl_emc" /usr/local/portage/gentoo.mipl

Code:
$ qlist -e "$@" | xargs scanelf -L -n -q -F '%n #F' | tr , ' ' | xargs qfile -Cv | sort
 -u | awk '{print $1}' | uniq
Usage: qlist <opts> <pkgname> : list files owned by pkgname

Options: -[ISRUcDeadosvqChV]
  -I, --installed      * Just show installed packages
  -S, --slots          * Display installed packages with slots
  -R, --repo           * Display installed packages with repository
  -U, --umap           * Display installed packages with flags used
  -c, --columns        * Display column view
      --showdebug      * Show /usr/lib/debug files
  -e, --exact          * Exact match (only CAT/PN or PN without PV)
  -a, --all            * Show every installed package
  -d, --dir            * Only show directories
  -o, --obj            * Only show objects
  -s, --sym            * Only show symlinks
      --root     <arg> * Set the ROOT env var
  -v, --verbose        * Make a lot of noise
  -q, --quiet          * Tighter output; suppress warnings
  -C, --nocolor        * Don't output color
  -h, --help           * Print this help and exit
  -V, --version        * Print version and exit
Usage: qfile <opts> <filename> : list all pkgs owning files

Options: -[bef:m:oRx:SvqChV]
  -S, --slots          * Display installed packages with slots
  -R, --root-prefix    * Assume arguments are already prefixed by $ROOT
  -f, --from     <arg> * Read arguments from file <arg> ("-" for stdin)
  -m, --max-args <arg> * Treat from file arguments by groups of <arg> (defaults to 5000)
  -b, --basename       * Match any component of the path
  -o, --orphans        * List orphan files
  -x, --exclude  <arg> * Don't look in package <arg> (used with --orphans)
  -e, --exact          * Exact match (used with --exclude)
      --root     <arg> * Set the ROOT env var
  -v, --verbose        * Make a lot of noise
  -q, --quiet          * Tighter output; suppress warnings
  -C, --nocolor        * Don't output color
  -h, --help           * Print this help and exit
  -V, --version        * Print version and exit
Back to top
View user's profile Send private message
nativemad
Developer
Developer


Joined: 30 Aug 2004
Posts: 892
Location: Switzerland

PostPosted: Thu Nov 06, 2014 11:40 am    Post subject: Reply with quote

emc wrote:

What you mean by and make sure it depends on multilib?

something like that i guess
Code:

inherit multilib
use? ( category/package[${MULTILIB_USEDEP}] )

emc wrote:
Code:
$ qlist -e "$@" | xargs scanelf -L -n -q -F '%n #F' | tr , ' ' | xargs qfile -Cv | sort
 -u | awk '{print $1}' | uniq
Usage: qlist <opts> <pkgname> : list files owned by pkgname

Try it with the actual package name instead of the "$@"! :wink:
_________________
Power to the people!
Back to top
View user's profile Send private message
emc
Guru
Guru


Joined: 02 Jul 2004
Posts: 530
Location: Cracow, Poland

PostPosted: Thu Nov 06, 2014 1:06 pm    Post subject: Reply with quote

nativemad wrote:

Try it with the actual package name instead of the "$@"! :wink:

it return:
Code:
app-emulation/emul-linux-x86-baselibs-20140508-r12
app-emulation/emul-linux-x86-gtklibs-20140508-r3
app-emulation/emul-linux-x86-xlibs-20140508
sys-devel/gcc-4.9.1
sys-libs/glibc-2.19-r1
Back to top
View user's profile Send private message
emc
Guru
Guru


Joined: 02 Jul 2004
Posts: 530
Location: Cracow, Poland

PostPosted: Thu Nov 06, 2014 1:25 pm    Post subject: Reply with quote

nativemad wrote:

Code:

inherit multilib
use? ( category/package[${MULTILIB_USEDEP}] )

Sorry doesn't help me a much... I'm just start writing ebuilds[/code]
Back to top
View user's profile Send private message
nativemad
Developer
Developer


Joined: 30 Aug 2004
Posts: 892
Location: Switzerland

PostPosted: Fri Nov 07, 2014 11:29 am    Post subject: Reply with quote

emc wrote:
nativemad wrote:

Code:

inherit multilib
use? ( category/package[${MULTILIB_USEDEP}] )

Sorry doesn't help me a much... I'm just start writing ebuilds[/code]

That was a wrong guess on my side... Obviously I also haven't used it so far! :wink:
It's the abi_x86_32 option that should be used!
See the trine2 ebuild in the tree for an example on how to make the deps properly.
It checks if either there is an emul package available, or the original 64bit lib is compiled with the 32bit abi enabled.
_________________
Power to the people!
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Portage & Programming All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum