Linux ports tutorial? WPS Office

Pedro Giffuni pfg at FreeBSD.org
Thu Dec 14 23:09:46 UTC 2017



On 12/14/17 17:07, Chris H wrote:
> On Thu, 14 Dec 2017 09:15:35 -0500 "Pedro Giffuni" <pfg at FreeBSD.org> said
>> On 12/13/17 22:31, blubee blubeeme wrote:
>>> On Thu, Dec 14, 2017 at 11:17 AM, Pedro Giffuni <pfg at freebsd.org 
>>> <mailto:pfg at freebsd.org>> wrote:
>>>
>>> Hello;
>>> On 13/12/2017 21:11, Chris H wrote:
>>> On Wed, 13 Dec 2017 19:56:24 -0500 "Pedro Giffuni"
>>> <pfg at FreeBSD.org> said
>>>
>>> On 12/10/17 14:55, Eugene Grosbein wrote:
>>>> 11.12.2017 2:22, Pedro Giffuni пишет:
>>>>> Hello guys;
>>>>>
>>>>> I would like to attempt a port for WPS Office (AKA
>>> Kingsoft Office):
>>>>>
>>>>> http://wps-community.org/
>>>>>
>>>>> Are there guidelines for linux ports? I couldn't find
>>> much details in the
>>>> handbook.
>>>>>
>>>>> In particular, how do you handle when the pkg-plist is
>>> different for i386
>>>> and amd64?
>>>>>
>>>>> Some ports use pkg-plist.${ARCH}  but I don't know how
>>> those work.
>>>> Just have "USES=linux", "USE_LINUX_RPM=yes" and make
>>> these two files
>>>> pkg-plist.i386 and pkg-plist.amd64
>>>> and they are used automatically. Or you could duplicate
>>> a magic from
>>>> /ports/Mk/Uses/linux.mk <http://linux.mk> in your Makefile:
>>>>
>>>> PLIST?= ${PKGDIR}/pkg-plist.${LINUX_ARCH:S/x86_64/amd64/}
>>>>
>>>> For details, read Porter's Handbook:
>>>>
>>> https://www.freebsd.org/doc/en_US.ISO8859-1/books/porters-handbook/
>>> <https://www.freebsd.org/doc/en_US.ISO8859-1/books/porters-handbook/>
>>>>
>>>
>>> The handbook has no information about "USE_LINUX_RPM=yes".
>>> If I set that it appears the ports framework will ignore
>>> MASTER_SITES.
>>>
>>> Should I dig into the MK framework to see how to change
>>> the repository or should I use the .tar.xz distribution
>>> instead? :(.
>>>
>>> I'm not sure. But would having a look at the way
>>> emulators/linux_base-c(6|7)
>>> provide some clues?
>>>
>>>
>>> Not really but I think I found something in Mk/Uses/linux.mk
>>> <http://linux.mk>:
>>>
>>> For the case of USE_LINUX_RPM it is supposed to not do anything
>>> when MASTER_SITES is defined but it is somewhat messy, and somehow
>>> it always uses ${MASTER_SITE_CENTOS_LINUX}. Any port that uses RPM
>>> but not the Centos repositories?
>>>
>>>     Just a thought, and hope it helps!
>>>
>>> Thanks, I just have to keep digging :(.
>>>
>>> Pedro.
>>>
>>> The linux packaging is okay but I'd recommend learning how the 
>>> porting process and not just wrapping up a linux binary in FreeBSD.
>>>
>>
>> Well ... of course if I had the source code I would not be dealing 
>> RPMs for the linuxulator.
>>
>> Software can be free but not include source code.  It can still be 
>> desirable for FreeBSD.
>>
>>> The main reason for that is you can port your way into a corner that 
>>> relies on very Linux specific stuff that there's just no solution 
>>> for yet nor will there be one unless you port the entire Linux 
>>> kernel to FreeBSD.
>>>
>>
>> Which is why we have a linuxulator.
> OK Pedro, just so I know I understand your intentions correctly;
> You need a way to unpack all the .rpm's, and separate them by
> $arch -- 32bit -vs- 64bit, so that you can create the correct 
> pkg-plist(s)
> for each of them. Is that correct?
>
> I'll await your response before a solution for that.
>

I did that already, thanks.
The trick was defining DISTFILES_amd64, DISTFILES_i386 and SRC_DISTFILES.

Now the problem is that our RPM support doesn't expect to find files 
installed in usr/bin and share.

At some point I decided it was better to use the .tar.xz distribution 
but that uses version of glibc and libpng that don't match either of the 
centos distributions we carry. So I am back to RPMs.

Cheers,

Pedro.



More information about the freebsd-ports mailing list