Date: Thu, 14 Dec 2017 18:27:10 -0500 From: Pedro Giffuni <pfg@FreeBSD.org> To: portmaster@BSDforge.com Cc: FreeBSD Ports <freebsd-ports@freebsd.org>, blubee blubeeme <gurenchan@gmail.com> Subject: Re: Linux ports tutorial? WPS Office Message-ID: <bdbd64cd-c9a8-bb8c-881c-0d6c898bf327@FreeBSD.org> In-Reply-To: <79074ba82ad8bd59f24678b21133bfe1@udns.ultimatedns.net> References: <79074ba82ad8bd59f24678b21133bfe1@udns.ultimatedns.net>
next in thread | previous in thread | raw e-mail | index | archive | help
On 12/14/17 18:11, Chris H wrote: > On Thu, 14 Dec 2017 17:59:34 -0500 "Pedro Giffuni" <pfg@FreeBSD.org> said > >> On 12/14/17 17:07, Chris H wrote: >> > On Thu, 14 Dec 2017 09:15:35 -0500 "Pedro Giffuni" >> <pfg@FreeBSD.org> said >> >> On 12/13/17 22:31, blubee blubeeme wrote: >> >>> On Thu, Dec 14, 2017 at 11:17 AM, Pedro Giffuni <pfg@freebsd.org >> >>> <mailto:pfg@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@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? > Yes, I did that. The port still doesn't work: - It appears it wants to use a old version of libpng that is not in our centos7. - USE_RPM doesn't install anything, it seems like we are missing support for non-base RPMs. I think I'll bail on this port, it requires some packaging-foo that I don't want to spend time on. I'll leave my WIP here, for someone else to play with it: https://people.freebsd.org/~pfg/ports/linux-wps-office.tgz Cheers, Pedro.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bdbd64cd-c9a8-bb8c-881c-0d6c898bf327>