Gentoo Archives: gentoo-dev

From: hasufell <hasufell@g.o>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] Re: [gentoo-commits] gentoo-x86 commit in games-board/stockfish: stockfish-6.ebuild metadata.xml Manifest ChangeLog
Date: Sat, 07 Feb 2015 15:07:03
Message-Id: 54D62A07.4010107@gentoo.org
In Reply to: [gentoo-dev] Re: [gentoo-commits] gentoo-x86 commit in games-board/stockfish: stockfish-6.ebuild metadata.xml Manifest ChangeLog by Ben de Groot
1 Ben de Groot:
2 >>>
3 >>> EAPI=5
4 >>> inherit toolchain-funcs
5 >>>
6 >>
7 >> This breaks consistency. Now users cannot rely on games.eclass anymore.
8 >> We should either abandon it completely or follow it consistently.
9 >
10 > I thought we had abandoned it already?
11 >
12 > Is there anything to be gained from using games.eclass here? It is a
13 > chess engine that simply installs one file in /usr/bin/.
14 >
15
16 Well, almost everything in games-engines/ uses games.eclass too. Just
17 the stuff in dev-games/ doesn't, because it's well... development stuff.
18
19 The idea behind games.eclass was to unify games installations in gentoo.
20 That involves common directories like /usr/games/bin and also special
21 permissions that were meant to aid administrators to restrict access to
22 games.
23
24 A lot of people have expressed that this doesn't look like the right way
25 in some sense (including me). It has also caused some weird bug, e.g.
26 for nethack.
27
28 But, my point is... whatever we do, we should do it consistently,
29 otherwise people might get the idea of not caring about abstractions
30 like python-r1, ruby/java/perl eclasses or whatever, because they don't
31 like them.
32
33 The council just chose the worst way, because it didn't want to upset
34 either party involved in the discussion.
35
36 >>> SRC_URI="https://stockfish.s3.amazonaws.com/${P}-src.zip"
37 >>>
38 >>> LICENSE="GPL-3"
39 >>> SLOT="0"
40 >>> KEYWORDS="~amd64 ~x86"
41 >>> IUSE="cpu_flags_x86_avx2 cpu_flags_x86_popcnt cpu_flags_x86_sse"
42 >>>
43 >>> DEPEND=""
44 >>
45 >> unzip is missing from DEPEND
46 >
47 > I thought portage auto-depends on this. But I can add || ( unzip zip )
48 > to be explicit.
49 >
50
51 I don't know, but it's definitely not in @system. Afair we are only
52 allowed to omit deps from that set.
53
54 >>> src_compile() {
55 >>> local my_arch
56 >>> use x86 && my_arch=x86-32-old
57 >>> use cpu_flags_x86_sse && my_arch=x86-32
58 >>> use amd64 && my_arch=x86-64
59 >>> use cpu_flags_x86_popcnt && my_arch=x86-64-modern
60 >>> use cpu_flags_x86_avx2 && my_arch=x86-64-bmi2
61 >>>
62 >>> emake build ARCH=${my_arch} CXX="$(tc-getCXX)" CXXFLAGS="${CXXFLAGS}"
63 >>
64 >> This currently breaks all cpu flags, because it overwrites anything the
65 >> Makefile does to CXXFLAGS, including -msse and -DIS_64BIT and even other
66 >> flags that are not CPU specific (e.g. -DNDEBUG).
67 >
68 > Thanks for catching this! I guess we do need to patch the Makefile
69 > then, to *also* honour user-set CXXFLAGS and LDFLAGS. Or could we get
70 > away with just letting the Makefile do its thing?
71 >
72
73 I've hit this bug myself in my overlay... I'll probably get up a pull
74 request upstream today.

Replies