[CFT] pkgng alpha2

2011-11-30 Thread Julien Laffaye

Hi all,

We are releasing pkgng (the next pkg_install) alpha2 to the world and we 
want you to test it!

There is no "good" method to test it: use it as you would in the real
world. Of course, you are encouraged to backup your data or test it in some
kind of virtualized environment.
After using it for some time, you will certainly find bugs. You can 
report them
on the issues tracker [1]. If you find missing features, that is things 
you can't do

with pkgng but can with pkg_install, you can also report
them. New features are not the expected outcome of this call, as we want to
release a final version ASAP.
FYI, an alpha3 should follow shortly to fix issues in alpha3 and test
additional features. After that, there will be a feature freeze with beta1.

Getting started:
You can download or git clone the source code of pkgng on the github 
page [2].

Then, a boring `make' followed by `make install' will do it.
If you have some packages installed by pkg_add, you can convert the old
database to the pkgng database with the 'pkg2ng' shell script in the ports/
folder.
You can also add packages from the ports tree (with bsd.pkgng.mk) or with
a pkgng repository. All is documented in the README and manpages.
If you are a newcomer to pkgng, this doc reading step is also valuable 
to us.

Indeed, if you fight to get the right infos, or if some things feel counter
intuitive, we should improve it!

Which brings me to the topic of contributing to pkgng.
The best thing you can do is to write down the documentation you would 
have loved

to read while testing pkgng!
And of course, if you have a patch with your bug report, it is much
appreciated.

If you read this entire mail and wonder what is this pkgng thing, you 
can read
the wiki page [3], bapt's presentation from BSDCan [4], EuroBSDCon [5] 
[6] and browse the source code.


Regards,
Julien, on behalf of the pkgng team.

And remember, we _do_ want to hear back from you!
Please also note that it is still alpha code and it can kill kitten and
puppies. You are warned ;-)

[1] : https://github.com/pkgng/pkgng/issues
[2] : https://github.com/pkgng/pkgng
[3] : http://wiki.freebsd.org/pkgng
[4] : http://people.freebsd.org/~bapt/pkgng-bsdcan2011.pdf
[5] : 
http://wiki.freebsd.org/201110DevSummit/Ports?action=AttachFile&do=get&target=pkgng-devsummit.pdf
[6] : 
http://wiki.freebsd.org/201110DevSummit?action=AttachFile&do=get&target=pkgng-devsummit-track.pdf

___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "freebsd-hackers-unsubscr...@freebsd.org"


Re: [RFC] rcexecr: rcorder in parallel

2011-06-04 Thread Julien Laffaye
On Sat, Jun 4, 2011 at 10:10 AM, Buganini  wrote:
> https://github.com/buganini/rcexecr
>
> Currently it is able to determine the exec/wait order
>
> There are something I haven't digged in deeply in the "self modification" 
> part.
>
> patches/ideas are welcome.

Hello,

Thanks for doing that!

You should use kqueue(2) instead of waitpid(2) so that you can
efficiently monitor a pool of processes.
See pwait(1) for an example.

Regards,
Julien
___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "freebsd-hackers-unsubscr...@freebsd.org"


Re: [ECFT] pkgng 0.1-alpha1: a replacement for pkg_install

2011-03-29 Thread Julien Laffaye
On Tue, Mar 29, 2011 at 5:15 AM, Tim Kientzle  wrote:
> II. Package signing.

 That would be really nice.
>>>
>>> Right know we only planned to sign the repo database, so we can trust
>>> the sah256 of the packages stored in the database. Then if the package
>>> has the same sha256 as the one in the repo database it is considered
>>> trusted.
>>> If we want a per-package signing, we would have a tarball in a tarball.
>>
>> I really expected this to have been mentioned already, but this approach 
>> (tarball in a tarball) is taken by Debian packages, and I don't remember 
>> hearing of any issues related to it.  I don't think it's worth discounting 
>> from the start without giving some considerationg, but I will defer to the 
>> people actually doing the work.
>
> If you use libarchive-style streaming, it's even
> pretty straightforward to read and extract such
> things without having to create a bunch of
> temporary files.
>
> You just need to be careful about compression.

Agreed, if we dont want to verify the signature, we can extract the
tarball in the tarball efficiently.

But to verify the signature, we have to read the tarball in the
tarball twice: the first time to compute the digest and verify the
signature, the second time to do the real extraction.
So I guess that the tarball containing the real package archive and
the signature should be uncompressed. The real package archive would
be compressed, though.
___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "freebsd-hackers-unsubscr...@freebsd.org"


Re: [ECFT] pkgng 0.1-alpha1: a replacement for pkg_install

2011-03-28 Thread Julien Laffaye
On Mon, Mar 28, 2011 at 6:59 PM, Garrett Cooper  wrote:
> On Mon, Mar 28, 2011 at 10:44 AM, Andriy Gapon  wrote:
>> on 25/03/2011 12:11 Baptiste Daroussin said the following:
>>> Hi all,
>>>
>>> miwi@ launched the new thing called Experimental Call For Testing,
>>> it's our turn :)
>>>
>>> Julien Laffaye (jlaffaye@) and I, helped by Philippe Pepiot (huge
>>> contributor) have been working since the end of the last GSoC on a
>>> rewrite of pkg_install.
>>>
>>> pkgng is a binary package manager written from scratch for FreeBSD.
>>>
>>> After a long period of technology testing, (json, tinycdb, bdb, etc)
>>> and we now have achieved to implement the basic functionnality. We
>>> would greatly approciate to have some feedback, wider testing,
>>> patching, documenting etc, before implementing the higher level
>>> features.
>>>
>>> pkgng is built on top of a new libpkg, which allow to deal with the 
>>> database of
>>> installed packages, to deal with remote repositories, manage packages:
>>> creation, installation gathering informations, registering new ports.
>>>
>>> features supported are or will be :
>>>
>>> - smooth integration with bsd.port.mk (including bsd.pkg.mk line 2486)
>>> which allow  to have a bsd.port.mk which deal with both pkg_install
>>> and pkgng. (done in alpha)
>>>
>>> - the register command can analyse elf files when registering a new port to
>>> discover forgotten dependencies if necessary. (done in alpha using libelf)
>>>
>>> - the register command has two mode available : when dealing with old
>>> fashion ports it just registers the package, in new mode it does
>>> everything that would
>>> have been done by pkg add when installing the package : should display
>>> messages,  execute post-install, execute @exec etc. (old fashion done
>>> in the alpha)
>>>
>>> - pkg add supports two mode : the old fashion one (no real upgrade
>>> support) and  new one: upgrade scripts supported. (old fashion in the
>>> alpha)
>>>
>>> - new scripts supported +PREINSTALL +POSTINSTALL, +PREDEINSTALL,
>>> +POSTDEINSTALL, +PREUPGRADE, +POSTUPGRADE as well as the old fashion
>>> scripts : +INSTALL +DEINSTALL +UPGRADE (all supported *UPGRADES aren't
>>> supported in the alpha)
>>>
>>> - new +MANIFEST (plist-like format) with new metadatas : options, arch, os
>>> version, etc. (done in the alpha)
>>>
>>> - pkgng supports checking arch of the package which means that users
>>> won't be able to install sparc64 binary package into amd64 machines.
>>> (not done yet)
>>>
>>> - a special architecture "all" allows to specify when a package can be used
>>> on every architecture. (not done yet)
>>>
>>> - @dirrm and @dirrmtry are now deprecated, pkgng can discover itself
>>> which directory has to be removed. (done in the alpha but needs love
>>> :))
>>>
>>> - new repository (apt-like feature) (only the repository generation is done)
>>>
>>> - real support for reverse dependency (no ugly +REQUIRED_BY) (done in the 
>>> alpha)
>>>
>>> - test unit (libcheck) on libpkg. (done in the alpha needs some more love)
>>>
>>> - many more
>>
>> Perhaps I am too impatient :) but I would like to inquire about the following
>> features:
>>
>> I. A provides/requires interface for packages.
>> Each package specified a list of files (and perhaps other entities) that it
>> provides and requires.  At the initial stage, without ports modifications, 
>> these
>> could be: (1) a list of all files installed by package for provides; (2) for
>> requires - an auto-generated list of dependencies based on required shared
>> libraries plus dependency specifications in ports.
>> I think that this kind of interface should help with using alternatives that
>> provide the same interface (e.g. like gamin vs fam).

Adding require/provide support in pkgng is kind of trivial. But ports
have to support it first.

>>
>> II. Package signing.
>
> That would be really nice.

Right know we only planned to sign the repo database, so we can trust
the sah256 of the packages stored in the database. Then if the package
has the same sha256 as the one in the repo database it is considered
trusted.
If we want a per-package signing, we would have a tarball in a tarball.

>
>> III. Package naming that includes architecture, majo

Re: [ECFT] pkgng 0.1-alpha1: a replacement for pkg_install

2011-03-26 Thread Julien Laffaye
On Fri, Mar 25, 2011 at 10:11 AM, Baptiste Daroussin  wrote:
>  Developpement site: http://git.etoilebsd.net/pkgng/

FYI, we moved to github[1] in order to have a bug tracker, pull
request and code review.
Also, I recommend to build from the HEAD of the git repository, to not
report fixed compilation warnings/bugs.

[1]: https://github.com/pkgng/pkgng
___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "freebsd-hackers-unsubscr...@freebsd.org"


Re: [ECFT] pkgng 0.1-alpha1: a replacement for pkg_install

2011-03-25 Thread Julien Laffaye
On Fri, Mar 25, 2011 at 2:38 PM, Alexander Leidinger
 wrote:
> Quoting Baptiste Daroussin  (from Fri, 25 Mar 2011
> 15:14:52 +0100):
>
>> 2011/3/25 Alexander Leidinger :
>>>
>>> Quoting Baptiste Daroussin  (from Fri, 25 Mar 2011
>>> 11:11:11 +0100):
>>>
 pkgng is a binary package manager written from scratch for FreeBSD.
>>>
>>> I didn't had a look at it, just some comments about some parts you
>>> explained.
>>>
 features supported are or will be :
>
 - a special architecture "all" allows to specify when a package can be
 used
 on every architecture. (not done yet)
>>>
>>> What if a package is able to install on a subset, e.g. the linuxulator
>>> ports
>>> are for amd64 and i386?
>>>
>>
>> No clue for that at the moment but we are open to suggestions.
>
> The suggestion is easy, allow a way to specify a set of valid architectures.

That looks reasonable and easy to implement.

>
>>> What about DB corruption/loss? Do you keep the /var/db/pkg//xxx
>>> files even with pkgng and only use the DB as a way to speed up some work
>>> (so
>>> the DB corruption just requires to run pkg2ng), or are you lost of the DB
>>> is
>>> lost?
>>>
>>
>> Nothing is done about DB corruption/loss, I am not sure we need to do
>> something.
>> Maybe.
>
> I would say "for sure". Info: In Solaris 10 sqlite is used for the service
> managenemt framework (SMF). It is possible that the DB is corrupt in some
> bad situations. In this case you have to rebuild the DB (script provided,
> been there, had to use it).

If sqlite is properly used with transactions, it is very hard to
corrupt the database. But if hardware lies to us and say that the data
is on disk whereas it isnt... what can we do?
Another potential problem is fsync(), but if it is broken on FreeBSD
we want to fix it!

BTW, the goal is to only have the database and not the flat files.
If you are paranoid about power outage, use something like zfs snapshots...

>
>> Currently a filesystem corruption/loss on /var/db/pkg would do the same.
>
> Put a corruption of /var/db/pkg/xyz-1/+REQUIRED_BY would only affect a small
> part, and this part could be even recovered from (pkgdb from portupgrade is
> able to do it).

With sqlite we have atomicity! And locks!

>
>> but it is sqlite so we can perhaps provide a way to get compressed
>> dump so user can periodically backup their database.
>
> It needs to be automated. Maybe periodic daily... but maybe this is not
> often enough after a day of a lot of changes (think about it this way: do
> you want to lose a day of changes?). The current FS based DB is very robust,
> partly because there is redundant data, pertly because losing a file just
> means that the very limited subset of information is lost (and a reinstall
> of one port will fix it).
>
> Bye,
> Alexander.

Regards,
Julien
___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "freebsd-hackers-unsubscr...@freebsd.org"


Re: txt-sysinstall scrapped

2010-11-07 Thread Julien Laffaye
On Sun, Nov 7, 2010 at 10:49 AM, Joel Dahl  wrote:
> On 07-11-2010 11:40, Daniel Gerzo wrote:
>> On 6.11.2010 6:17, Josh Paetzel wrote:
>> > Without putting much analysis into it, we talked about using lighttpd, 
>> > which
>> > is BSDL.  As far as another service, it would be running for the install 
>> > only
>> > which is in most circumstances something that happens locally.
>> >
>>
>> NGiNX might a worth a shoot as well. Seems like the development of
>> lighty has been somewhat "stalled", and Igor Sysoev seems like a FreeBSD
>> user himself too...
>
> I was about to suggest the same thing myself.  I use nginx everywhere
> nowadays.  It's both small and powerful, easy to setup and BSD licensed.
>

Mongoose [1] is a very small HTTP server. It is designed to be
embedded in C programs. Basically it is a lib, and a daemon.
I think it would perfectly replace Lighttpd/Nginx/Apache for the tasks
described.

[1]: http://code.google.com/p/mongoose/
___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "freebsd-hackers-unsubscr...@freebsd.org"


Re: GSoC:Complete Package support in the pkg_install tools and cleanup

2010-05-05 Thread Julien Laffaye
On Wed, May 5, 2010 at 7:34 PM, Wesley Shields  wrote:
> On Tue, May 04, 2010 at 10:30:13AM -0700, Julien Laffaye wrote:
>> On Tue, May 4, 2010 at 3:15 AM, Andrew Brampton
>>  wrote:
>> >
>> > Hi Julien,
>> >
>> > Glad you got onto the GSoC programme. I'm curious, what benefit is a
>> > complete package over many individual ones?
>>
>> Hi Andrew,
>>
>> If you cant or dont want to use the remote feature of of pkg_add (ex.
>> your packages are built with non default options and you think its
>> overkill to setup a server to distribute them) then you make a
>> complete package. You only have to copy one file (say on an usb
>> device), which is less error prone than 150 files.
>> The global idea is to write a meta port which depends on the desired
>> ports, type `make complete-package`, copy the output file on the
>> machine to bootstrap, pkg_add /path/to/complete-pkg and voila!
>
> Do you intend to add the "complete-package" target also or is that out
> of scope?
>

Yes, it is scheduled to add the ability to build complete packages
from the ports tree.
The name of the target is not yet endorsed but I think that
"complete-package" is pretty straight forward.

Regards,
Julien
___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "freebsd-hackers-unsubscr...@freebsd.org"


Re: GSoC:Complete Package support in the pkg_install tools and cleanup

2010-05-04 Thread Julien Laffaye
On Tue, May 4, 2010 at 3:15 AM, Andrew Brampton
 wrote:
>
> Hi Julien,
>
> Glad you got onto the GSoC programme. I'm curious, what benefit is a
> complete package over many individual ones?

Hi Andrew,

If you cant or dont want to use the remote feature of of pkg_add (ex.
your packages are built with non default options and you think its
overkill to setup a server to distribute them) then you make a
complete package. You only have to copy one file (say on an usb
device), which is less error prone than 150 files.
The global idea is to write a meta port which depends on the desired
ports, type `make complete-package`, copy the output file on the
machine to bootstrap, pkg_add /path/to/complete-pkg and voila!

Regards,
Julien
___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "freebsd-hackers-unsubscr...@freebsd.org"


GSoC:Complete Package support in the pkg_install tools and cleanup

2010-05-03 Thread Julien Laffaye
Hello,

During this summer, I'll work on the pkg_install tools to add complete
package support.
A complete package is a package which includes all the required
dependencies in its tarball.
Unlike the PBI package format of PC-BSD, once a complete package is installed,
it appears as every package contained in the complete package was
installed separately.

As a side effect, I'll add libarchive support to the pkg_add tool to
make installation as efficient
as possible and do some refactoring to allow code re usability.
I'll also surely write automated tests which would benefit to the
pkg_install tools.

My page on the wiki is http://wiki.freebsd.org/SOC2010JulienLaffaye

You can email me on or off list is you have any questions, comments or
suggestions.

Best regards,
Julien Laffaye
___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "freebsd-hackers-unsubscr...@freebsd.org"


Re: SoC2009: libpkg, pkg tools rewrite

2009-04-26 Thread Julien Laffaye
On Sat, Apr 25, 2009 at 9:20 PM, David Forsythe  wrote:
> Hi,
> I'm David Forsythe, 3rd year student at the University of Maryland, College
> Park.  For SoC2008 I worked on added parallel build support and database
> locks to ports.  I've been using FreeBSD for a while, and have taken
> particular interest in ports and packages.
> This summer I'll be working on creating a package library and using that
> library to rewrite the pkg tools.  A package library has been discussed and
> even started before, but FreeBSD still does not have one.  This summer I'd
> like to get enough of the library done to atleast have a new set of pkg
> tools completed with the current features, but ideally I'd like to get far
> enough to splice in some of the ideas I have for new features.
> Here's the wiki page: http://wiki.freebsd.org/SoC2009DavidForsythe
> Dave

Hi,

It'll be nice if libpkg can deal with all the infos in the INDEX with
an elegant API.
You have to read the packages names in the INDEX for `pkg_version -I`
but maybe other tools will enjoy to get other infos (especially the
one line description, the categories and the run time dependencies).
So basically, an API which understand "give me all the packages names
you have in the INDEX", "give me the description for _this_ package",
"give me all the names plus the categories", "give me..."

Regards,
Julien Laffaye
___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "freebsd-hackers-unsubscr...@freebsd.org"