From owner-freebsd-ports@freebsd.org Sat Jan 2 09:31:36 2016 Return-Path: Delivered-To: freebsd-ports@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A08ABA5FC8F for ; Sat, 2 Jan 2016 09:31:36 +0000 (UTC) (envelope-from 000.fbsd@quip.cz) Received: from elsa.codelab.cz (elsa.codelab.cz [94.124.105.4]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 2BB77109B for ; Sat, 2 Jan 2016 09:31:35 +0000 (UTC) (envelope-from 000.fbsd@quip.cz) Received: from elsa.codelab.cz (localhost [127.0.0.1]) by elsa.codelab.cz (Postfix) with ESMTP id 2FED628453; Sat, 2 Jan 2016 10:31:32 +0100 (CET) Received: from illbsd.quip.test (ip-86-49-16-209.net.upcbroadband.cz [86.49.16.209]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by elsa.codelab.cz (Postfix) with ESMTPSA id 7D4EE28451; Sat, 2 Jan 2016 10:31:30 +0100 (CET) Message-ID: <568798F2.4070507@quip.cz> Date: Sat, 02 Jan 2016 10:31:30 +0100 From: Miroslav Lachman <000.fbsd@quip.cz> User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:35.0) Gecko/20100101 Firefox/35.0 SeaMonkey/2.32 MIME-Version: 1.0 To: olli hauer CC: freebsd-ports@freebsd.org Subject: Re: Using pkg updating without /usr/ports [SOLVED] References: <56755B17.3080904@quip.cz> <20151219134610.GO1173@albert.catwhisker.org> <56758BBB.9030804@quip.cz> <5675B479.5070903@gmx.de> <5676671D.3000001@quip.cz> In-Reply-To: <5676671D.3000001@quip.cz> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 Jan 2016 09:31:36 -0000 Miroslav Lachman wrote on 12/20/2015 09:30: > olli hauer wrote on 12/19/2015 20:48: >> On 2015-12-19 17:54, Miroslav Lachman wrote: >>> David Wolfskill wrote on 12/19/2015 14:46: >>>> On Sat, Dec 19, 2015 at 02:26:47PM +0100, Miroslav Lachman wrote: >> ... >>> pkg update and pkg upgrade works fine for me too, but pkg updating >>> not. pkg updating is intended to read /usr/ports/UPDATING file and >>> compare its content to installed packages and show important messages >>> before running `pkg upgrade`. >>> But UPDATING file is not automatically synchronised between build >>> server and 'client' (machine where I need to run `pkg updating`). >>> >> >> Absolute crude hack, but maybe works for you. >> Please note the port is absolute not supported and breaks many porting >> rules ... >> Instead installing the file on the servers to /usr/ports it can be >> installed anywhere and then use `pkg updating -f $file' >> It should be also the first port that is updated before all other ports >> >> >> on you build host: >> $ mkdir /usr/ports/misc/updating >> >> cat > /usr/ports/misc/updating/Makefile << _EOF >> PORTNAME= updating >> PORTVERSION!= /bin/date -j "+%Y%m%d.%H%M" >> CATEGORIES= misc >> MASTER_SITES= # none >> DISTFILES= # none >> >> MAINTAINER= updating@example.org >> COMMENT= UPDATING info >> >> LICENSE= BSD2 >> >> NO_BUILD= yes >> WRKSRC= ${WRKDIR}/UPDATING >> SRC= ${PORTSDIR}/UPDATING >> >> PLIST_FILES= ${PORTSDIR}/UPDATING >> PLIST_DIRS= ${PORTSDIR} >> >> do-extract: >> @${DO_NADA} >> >> do-install: >> @${MKDIR} ${STAGEDIR}/${PORTSDIR} >> ${INSTALL_DATA} ${PORTSDIR}/UPDATING ${STAGEDIR}/${PORTSDIR} >> >> .include >> _EOF >> >> >> cat > /usr/ports/misc/updating/pkg-descr << _EOF >> ports UPDATING file >> _EOF > > Really nice hack! :) Maybe I will give it a try. > The only other workaround I found is copy UPDATING by scp or rsync from > build servers to "clients" periodically by cron job. > > Miroslav Lachman I solved it by poudriere hook in /usr/local/etc/poudriere.d/hooks/bulk.sh --------------------------- event=$1 if [ "$event" == "done" ]; then ports_tree=$(poudriere ports -l -q | awk '$1 == "'$PTNAME'" { print $5 }') cp "$ports_tree/UPDATING" $PACKAGES_ROOT/ fi --------------------------- This part of script just puts the copy of UPDATING in to web accessible directory with packages after build is done. Then on client machines I have to run pkg_updating.sh manually or from cron: --------------------------- #!/bin/sh repo_conf="/usr/local/etc/pkg/repos/codelab.conf" ports_dir="/usr/ports" url_base=$(awk '{ if ($1 == "url:") { gsub(/[",]/, ""); print $2 } }' $repo_conf) if [ ! -d "$ports_dir" ]; then mkdir $ports_dir fi fetch -q -r -o "$ports_dir/UPDATING" "$url_base/UPDATING" --------------------------- So `pkg updating` is working for me now. Miroslav Lachman