Linux ports tutorial? WPS Office

Chris H portmaster at BSDforge.com
Thu Dec 14 23:09:33 UTC 2017


On Thu, 14 Dec 2017 17:59:34 -0500 "Pedro Giffuni" <pfg at FreeBSD.org> said

> 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.
Can't you just *omit* those, and use those already supplied by FreeBSD?
Maybe those in the linux_base ports, via (run|make)depends?

just a thought. :-)

--Chris

> 
> Cheers,
> 
> Pedro.




More information about the freebsd-ports mailing list