From owner-freebsd-emulation@FreeBSD.ORG Sat Mar 18 22:32:49 2006 Return-Path: X-Original-To: freebsd-emulation@freebsd.org Delivered-To: freebsd-emulation@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id A41FC16A445 for ; Sat, 18 Mar 2006 22:32:49 +0000 (UTC) (envelope-from Alexander@Leidinger.net) Received: from www.ebusiness-leidinger.de (jojo.ms-net.de [84.16.236.246]) by mx1.FreeBSD.org (Postfix) with ESMTP id 00AAA43D45 for ; Sat, 18 Mar 2006 22:32:48 +0000 (GMT) (envelope-from Alexander@Leidinger.net) Received: from Andro-Beta.Leidinger.net (p54A5F28C.dip.t-dialin.net [84.165.242.140]) (authenticated bits=0) by www.ebusiness-leidinger.de (8.13.1/8.13.1) with ESMTP id k2IMEB6j090115; Sat, 18 Mar 2006 23:14:12 +0100 (CET) (envelope-from Alexander@Leidinger.net) Received: from Magellan.Leidinger.net (Magellan.Leidinger.net [192.168.1.1]) by Andro-Beta.Leidinger.net (8.13.3/8.13.3) with ESMTP id k2IMWhdS072930; Sat, 18 Mar 2006 23:32:43 +0100 (CET) (envelope-from Alexander@Leidinger.net) Date: Sat, 18 Mar 2006 23:32:43 +0100 From: Alexander Leidinger To: Boris Samorodov Message-ID: <20060318233243.52d6c3aa@Magellan.Leidinger.net> In-Reply-To: <61349928@ho.ipt.ru> References: <39907788@serv3.int.kfs.ru> <20060316181625.41102cfd@Magellan.Leidinger.net> <61349928@ho.ipt.ru> X-Mailer: Sylpheed-Claws 2.0.0 (GTK+ 2.8.16; i386-portbld-freebsd7.0) Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="MP__Zs=hjt1=aGcwfTSlB._VyF" X-Virus-Scanned: by amavisd-new Cc: freebsd-emulation@freebsd.org Subject: Re: [patch] for bsd.linux-rpm.mk (add auto sources fetching) X-BeenThere: freebsd-emulation@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Development of Emulators of other operating systems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 18 Mar 2006 22:32:49 -0000 --MP__Zs=hjt1=aGcwfTSlB._VyF Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Content-Disposition: inline Am Thu, 16 Mar 2006 23:23:03 +0300 schrieb Boris Samorodov : > On Thu, 16 Mar 2006 18:16:25 +0100 Alexander Leidinger wrote: > > Am Thu, 16 Mar 2006 18:25:23 +0300 > > schrieb Boris Samorodov : > > > > +. if defined(PACKAGE_BUILDING) && ${AUTO_LINUX_SRC} == "yes" > > > +DISTFILES+= ${DISTNAME}${SRC_SUFX} > > > +MASTER_SITE_SUBDIR+= 3/SRPMS > > > +ALWAYS_KEEP_DISTFILES= yes > > > . endif > > > You are assuming this will only be used for some specific directory > > layouts without the possibility to override this. I suggest to > > introduce an overridable variable... maybe MASTER_SITE_SRC_SUBDIR or > > whatever which will be added to MASTER_SITE_SUBDIR then. > > > Maybe you can change the patch to have a look at a SRC_DISTFILES > > variable and add this content to the DISTFILES in the PACKAGE_BUILDING > > case instead of hardcoding one file. > > Agreed to both. New patch is attached. > > If auto fetching go well, then variable AUTO_LINUX_SRC may be I don't think we need it, I documented the behavior and what to do in case of e.g. a commercial RPM. > deletted. But for now it may be used if something go wrong with auto > fetching. Attached is a diff which I intend to commit. It's a combination of your patches, and some own stuff (start of docs, a new new-plist target and some mods to your patches). What do you think about it? Bye, Alexander. -- To boldly go where I surely don't belong. http://www.Leidinger.net Alexander @ Leidinger.net GPG fingerprint = C518 BC70 E67F 143F BE91 3365 79E2 9C60 B006 3FE7 WL http://www.amazon.de/exec/obidos/registry/1FZ4DTHQE9PQ8/ref=wl_em_to/ --MP__Zs=hjt1=aGcwfTSlB._VyF Content-Type: text/x-patch; name=bsd.linux-rpm.mk.diff Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=bsd.linux-rpm.mk.diff Index: bsd.linux-rpm.mk =================================================================== RCS file: /big/FreeBSD-CVS/ports/Mk/bsd.linux-rpm.mk,v retrieving revision 1.2 diff -u -u -r1.2 bsd.linux-rpm.mk --- bsd.linux-rpm.mk 25 Jan 2006 17:41:34 -0000 1.2 +++ bsd.linux-rpm.mk 18 Mar 2006 22:28:51 -0000 @@ -4,6 +4,30 @@ # $FreeBSD: ports/Mk/bsd.linux-rpm.mk,v 1.2 2006/01/25 17:41:34 jylefort Exp $ # +# Variables: +# - LINUX_DIST: Will be used to set some dist-specific presets. +# Valid values: fedora +# - LINUX_DIST_VER: Use depends upon the dist-specific presets. +# Valid values for "fedora": all version numbers +# e.g. 3 for fedora core 3, 4 for fedora core 4 +# This is used to set MASTER_SITE_{,SRC_}SUBDIR +# if it isn't already set. +# - MASTER_SITE_SRC_SUBDIR: The subdir for the src RPM's. +# - DISTFILES: For simple cases this will be set automatically +# based upon the DISTNAME. +# - SRC_DISTFILES: Variable which contains the corresponding src RPM's. +# If there's no corresponding src RPM, it has to be +# set to the empty value (SRC_DISTFILES= ""). +# - AUTOMATIC_PLIST: Generate a dynamic plist (please have a look at the +# porters handbook section which talks about plists. +# This feature is reserved for rare cases). +# - BRANDELF_DIRS: A list of directories with executables to brand +# as a linux executable. The directories has to not +# contain libraries. +# - BRANDELF_FILES: A list of files to brand as a linux executable in +# case BRANDELF_DIRS can't be used. + + .if !defined(_POSTMKINCLUDED) && !defined(Linux_RPM_Pre_Include) Linux_RPM_Include_MAINTAINER= emulation@FreeBSD.org @@ -33,10 +57,38 @@ Linux_RPM_Post_Include= bsd.linux-rpm.mk +LINUX_DIST?= fedora +LINUX_DIST_VER?= 3 + +. if defined(LINUX_DIST) +DIST_SUBDIR?= rpm/${LINUX_RPM_ARCH}/${LINUX_DIST}/${LINUX_DIST_VER} + +. if ${LINUX_DIST} == "fedora" MASTER_SITES?= ${MASTER_SITE_FEDORA_LINUX} -MASTER_SITE_SUBDIR?= 3/${LINUX_RPM_ARCH}/os/Fedora/RPMS/ +MASTER_SITE_SUBDIR?= ${LINUX_DIST_VER}/${LINUX_RPM_ARCH}/os/Fedora/RPMS \ + updates/${LINUX_DIST_VER}/${LINUX_RPM_ARCH} +MASTER_SITE_SRC_SUBDIR?= ${LINUX_DIST_VER}/SRPMS \ + updates/${LINUX_DIST_VER}/SRPMS +. else +IGNORE= unknown LINUX_DIST in port Makefile +. endif +. endif PKGNAMEPREFIX?= linux- +# DISTFILES and SRC_DISTFILES assume that there is only one bindist +# and one src file. +# Please, define them n the Makefile of the port in case this assumption +# is not true. + +DISTFILES?= ${DISTNAME}${EXTRACT_SUFX} +SRC_DISTFILES?= ${DISTNAME}${SRC_SUFX} + +. if defined(PACKAGE_BUILDING) +DISTFILES+= ${SRC_DISTFILES} +MASTER_SITE_SUBDIR+= ${MASTER_SITE_SRC_SUBDIR} +ALWAYS_KEEP_DISTFILES= yes +. endif + EXTRACT_DEPENDS+= ${RPM2CPIO}:${PORTSDIR}/archivers/rpm EXTRACT_CMD?= ${RPM2CPIO} @@ -45,43 +97,54 @@ MD5_FILE?= ${MASTERDIR}/distinfo.${LINUX_RPM_ARCH} +BRANDELF_DIRS?= +BRANDELF_FILES?= + . if defined(AUTOMATIC_PLIST) . if ${USE_LINUX} == "8" || ${USE_LINUX:L} == "yes" _LINUX_BASE_SUFFIX= 8 . elif ${USE_LINUX} == "debian" _LINUX_BASE_SUFFIX= debian +. elif ${USE_LINUX} == "fc3" +_LINUX_BASE_SUFFIX= fc3 . else # other linux_base ports do not provide a pkg-plist file -IGNORE= uses AUTOMATIC_PLIST with an unsupported USE_LINUX, \"${USE_LINUX}\". Supported values are \"yes\", \"8\" and \"debian\" +IGNORE= uses AUTOMATIC_PLIST with an unsupported USE_LINUX, \"${USE_LINUX}\". Supported values are \"yes\", \"8\", \"debian\" and \"fc3\" . endif PLIST?= ${WRKDIR}/.PLIST.linux-rpm pre-install: linux-rpm-generate-plist +. if !target(linux-rpm-generate-plist) linux-rpm-generate-plist: @cd ${WRKSRC} && \ ${FIND} * ! -type d | ${SORT} > ${PLIST} && \ ${FIND} * -type d | ${SORT} | ${SED} -e 's|^|@dirrm |' > ${PLIST}.dirs @${GREP} '^@dirrm ' ${PORTSDIR}/emulators/linux_base-${_LINUX_BASE_SUFFIX}/pkg-plist | ${SORT} > ${PLIST}.shared-dirs @${COMM} -1 -3 ${PLIST}.shared-dirs ${PLIST}.dirs | ${SORT} -r >> ${PLIST} - +. endif . endif . if !target(do-install) do-install: +. if ${BRANDELF_DIRS} + @cd ${WRKSRC} && ${FIND} ${BRANDELF_DIRS} -type f -print0 \ + | ${XARGS} -0 ${FILE} | ${GREP} ELF | ${CUT} -d : -f 1 \ + | ${XARGS} ${BRANDELF} -t Linux +. endif +. if ${BRANDELF_FILES} + @cd ${WRKSRC} && ${BRANDELF} -t Linux ${BRANDELF_FILES} +. endif cd ${WRKSRC} && ${FIND} * -type d -exec ${MKDIR} "${PREFIX}/{}" \; cd ${WRKSRC} && ${FIND} * ! -type d | ${CPIO} -pm -R root:wheel ${PREFIX} . endif . if !target(new-plist) -new-plist: - @${RM} -rf ${WRKDIR}/.new-plist - @${MKDIR} ${WRKDIR}/.new-plist - @cd ${WRKDIR}/.new-plist && \ - for f in ${DISTFILES}; do \ - ${RPM2CPIO} ${_DISTDIR}/$$f | ${CPIO} -id --quiet; \ +new-plist: build + @${RM} -f ${PLIST}.new + @cd ${WRKSRC} && \ ${FIND} * ! type d | ${SORT} > ${PLIST}.new; \ ${FIND} -d * -type d | ${SED} -e 's|^|@dirrm |' >> ${PLIST}.new; \ done --MP__Zs=hjt1=aGcwfTSlB._VyF--