From owner-freebsd-pkg@freebsd.org Wed Sep 23 20:37:35 2015 Return-Path: Delivered-To: freebsd-pkg@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 715DAA075A6 for ; Wed, 23 Sep 2015 20:37:35 +0000 (UTC) (envelope-from mfv@bway.net) Received: from smtp2.bway.net (smtp2.bway.net [216.220.96.28]) (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 4D4C31F77 for ; Wed, 23 Sep 2015 20:37:35 +0000 (UTC) (envelope-from mfv@bway.net) Received: from gecko4 (host-216-220-115-237.dsl.bway.net [216.220.115.237]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: m1316v@bway.net) by smtp2.bway.net (Postfix) with ESMTPSA id B4FCA9586D; Wed, 23 Sep 2015 16:37:31 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bway.net; s=mail; t=1443040651; bh=ladygQeC81+OU6olcBs2peg9FiFA5p6SkYGkqspLJFo=; h=Date:From:To:Cc:Subject:In-Reply-To:References:Reply-To; b=jf8U3TkICgKTdBO4eekYEVeaTW1qfWPpg1gIZR33r0IjAEMpZOZA40SueowLNswyD 4w0Vip5mH4B+HSsd1GRe/ULQ6EFokYmzhuuNNNzOGS4ukDSouK+8X+6AUB0HrBaFqw lfLx9h1nGzKESGQqdN2pa0/5b6LMv/n3pyQFlhA8= Date: Wed, 23 Sep 2015 16:37:31 -0400 From: mfv To: Arto Pekkanen Cc: freebsd-pkg@freebsd.org Subject: Re: Suggestion to add build/revision number to "pkg stats" Message-ID: <20150923163731.70398452@gecko4> In-Reply-To: <56027399.8040101@kapsi.fi> References: <20150916165829.46ba52f6@gecko4> <55FC6977.6010704@gmx.net> <20150922220600.GE16800@ivaldir.etoilebsd.net> <56027399.8040101@kapsi.fi> Reply-To: mfv@bway.net MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: quoted-printable X-BeenThere: freebsd-pkg@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Binary package management and package tools discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 23 Sep 2015 20:37:35 -0000 > On Wed, 2015-09-23 at 12:40 Arto Pekkanen wrote: > >I have a better solution: just expose the start date of repository >build in pkg stats. > >Something like this: >Local package database: > Installed packages: 780 > Disk space occupied: 6 GiB > >Remote package database(s): > Number of repositories: 1 > Packages available: 24561 > Unique packages: 24561 > Total size of packages: 44 GiB > Repository build started at: 20150923T000000Z > >All of the methods (svn, git, etc) afaik support checking out the >closest revision by date. I know not many people use this, but still. > >See here: >http://svnbook.red-bean.com/en/1.6/svn.tour.revs.specifiers.html > >With this information I could simply pkg update, then see if >repository was updated (by grepping pkg update output OR by checking >pkg database checksum) AND if so, just do 'svn checkout -r build date from pkg stats> ...' on the branch the repository is based >on. After this the ports tree would be in sync with the repository. > >Sometime ago I asked if it would be possible to determine the start >date of repository build, but afaik this question was never answered. > >If this feature was implemented, I could finally finish my software >project. I am trying to create an alternative to poudriere, which does >ONLY builds those packages which have custom build options, and would >merge in packages (that do not need to be built) from base repository. >The goal of my project is to save tremendous amounts of time when >building a custom repository. Currently I've decided to halt the >development, since I cannot programmatically guarantee that I can get >ports in sync with the base repository, which would mean that my >software would end up botching the repository build every now and then. > >On 23.9.2015 1:06, Baptiste Daroussin wrote: >> On Fri, Sep 18, 2015 at 09:43:51PM +0200, Simon Wright wrote: >>> On 16/09/2015 22:58, mfv wrote: >>> >>> snipped >>> >>>> The build number is only available when the build begins, but the >>>> package upgrade is not possible until the build process ends many >>>> hours later. Moreover, it is also possible to update the port >>>> tree to >>> >>> snipped >>> >>>> A simple solution would be to have the build number available as >>>> part of a port upgrade and made available in "pkg stats". Its >>>> output could look like this: >>>> >>>> Local package database: >>> >>> snipped >>> >>>> Even better would be an argument to "pkg stats" that would only >>>> output the revision number, say "pkg stats -n" >>>> >>>> After running "pkg upgrade", it would then be an easy to extract >>>> the build number of that particular upgrade and then sync the >>>> ports tree to that number using subversion or, my favourite, svnup. >>> >>> +1, this information would be very useful for me. It might be=20 >>> necessary to be able to specify a specific repository as well as >>> the local/remote switch; I have two remotes configured, my one >>> built by poudriere and also the "latest" freebsd.org repo. >>> >>> Simon. >>=20 >> This is a bit more complexe than that as the ports tree can be >> checked out from portsnap, svn, git etc (aka different id). >>=20 >> The right way would be to package the ports tree itself along with >> other packages so if you need to build something: pkg install ports >> and you are always 100% sure to be on good ports tree. >>=20 >> But we are not there yet :( >>=20 >> Best regards, >> Bapt >>=20 > Hello Bapt and Arto, I read your messages with interest. I did not realize there is not a uniform numbering system among the different systems that update the ports tree and had assumed that the subversion number was THE number. =20 Could the the output of pkg stats identify the revision number for the different systems? Say, Git revision number: 123456 Subversion number : 654321 Concerning the use of subversion and svnup, I adapted a script found on the web that was able to extract the subversion/svnup number from the most current build: https://gist.github.com/reedacartwright/8622973baf89b263a6d7 The only significant problem is the long time gap between the start of the build (at which time the number is available) and the completion of the build. There have been many occasions when my local ports tree was updated to a particular revision number BEFORE the package build was completed. Because of the time gap it is possible to update the local repository against a particular revision and to update the ports tree to a newer revision. The following website may provide an answer to Arto's question as to when a build begins. https://pkg-status.freebsd.org/ I've tried to sync the ports tree and packages based on a date but have not been able to identify one. However, between a date and a build number my guilt feeling is that the latter is the safer option. =46rom past observations there is a 3 to 4 hour gap between the completion of a build and the availability of its package update. I've always wondered why. Cheers ... Marek