D rpm packages for Linux

Neal Becker ndbecker2 at gmail.com
Fri Jun 25 12:26:16 PDT 2010


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





More information about the Digitalmars-d-announce mailing list