Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 23 Sep 2015 16:37:31 -0400
From:      mfv <mfv@bway.net>
To:        Arto Pekkanen <isoa@kapsi.fi>
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>

next in thread | previous in thread | raw e-mail | index | archive | help
> On Wed, 2015-09-23 at 12:40 Arto Pekkanen <isoa@kapsi.fi> 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 <repository
>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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20150923163731.70398452>