D rpm packages for Linux

Jordi Sayol i Salomó g.sayol at yahoo.es
Fri Jun 25 12:46:47 PDT 2010


En/na Neal Becker ha escrit:
> Jordi Sayol i salomó wrote:
> 
>> En/na Neal Becker ha escrit:
>>> Jordi Sayol i salomó wrote:
>>>
>>>> En/na Andrei Alexandrescu ha escrit:
>>>>> On 06/25/2010 03:46 AM, Jordi Sayol i Salomó wrote:
>>>>>> En/na Ellery Newcomer ha escrit:
>>>>>>> On 06/24/2010 01:14 PM, Jordi Sayol i Salomó wrote:
>>>>>>>> En/na Ellery Newcomer ha escrit:
>>>>>>>>> Also note that mine doesn't fail on x86_64
>>>>>>>>>
>>>>>>>>> (you need to add glibc-devel(x86-32) specifically as a dependency)
>>>>>>>>>
>>>>>>>> Can You be more explicit?
>>>>>>>> I've not a 64 bit system available.
>>>>>>>>
>>>>>>> dmd links to ctnrl.o or something like that, which is in glibc-devel
>>>>>>> and must be 32 bit. If the 32 bit version ain't there, there be
>>>>>>> linker errors on compile.
>>>>>>>
>>>>>>> in the spec file, after
>>>>>>>
>>>>>>> Requires: gcc
>>>>>>>
>>>>>>> add
>>>>>>>
>>>>>>> Requires: glibc-devel(x86-32)
>>>>>>>
>>>>>>> I know nothing of specific minimum version or anything like that,
>>>>>>> though.
>>>>>>>
>>>>>> Many thanks for Your answer.
>>>>>>
>>>>>> This rpm package is build for a i386 platform, and it's only
>>>>>> installable on a i386 system (without force it to), so the
>>>>>> dependencies are for i386 installation. Of course It can be forced to
>>>>>> install in another platform as x86_64, alpha, arm, hppa, mips, mipsel,
>>>>>> powerpc, s390, sparc, etc. but I cannot assure that the compiler will
>>>>>> work on all of them. You talk about the glibc-devel package, but this
>>>>>> is not the only one needed by the compiler, dmd also needs gcc (32
>>>>>> bits) and in Your rpm (as in mine) do not specifies anything about
>>>>>> arch, also there is a missing library on Your rpm, libgcc_s.so.1 is
>>>>>> needed too by dmd.
>>>>>>
>>>>>> One solution for this problem is to explain the trick needed to
>>>>>> install the ix86 dmd rpm package on a x86_64 system, as Walter has
>>>>>> done with the same situation for the dmd deb package,
>>>>>> http://www.digitalmars.com/d/2.0/dmd-linux.html#installation
>>>>>>
>>>>>> Another one is to create a x86_64 rpm package of dmd 32 bits compiler.
>>>>>> I don't like this solution because when dmd 64 bits appears in the
>>>>>> near future, this will be a source of confusion.
>>>>>>
>>>>>> And My preferred solution, create a i386 chroot machine inside Your
>>>>>> x86_64 system, install dmd package on it and compile Yours D programs
>>>>>> on it too.
>>>>> Wait, isn't there a way to say in an rpm "if the target OS is 64-bit
>>>>> then insert this dependency, otherwise don't"?
>>>>>
>>>>> Andrei
>>>>>
>>>> Until I know, there is not a direct way on rpm and deb packaging system
>>>> to do that.
>>>>
>>>> There is an scripting system to do what You want, but of course, You
>>>> have to do all the job.
>>>>
>>>> Best regards,
>>> What about
>>> Requires:
>> Requiers: tag includes a list of packages and/or libraries needed to
>> properly run the application, but it do not select which dependencies are
>> needed depending if the OS is 32 or 64 bits.
>>
> 
> I'm pretty sure you can put the Requires within an if clause
> 
> Here's an example I have with BuidRequires (from emacs.spec)
> 
> %ifarch %{ix86}
> BuildRequires: setarch
> %endif

This is not for compile/build time? 


-- 
Jordi Sayol



More information about the Digitalmars-d-announce mailing list