Re: Moving to synth (was: Removing documentation)

2016-02-08 Thread Michel Talon

Greg 'groggy' Lehey wrote:

> So how would things improve in this respect if we change to synth?
> There we need a maintainer who understands Ada.  OK, at the moment
> that's you.  But what happens when you relinquish maintainership for
> whatever reason?

> My feeling on the matter is that there's space for more than one tool,
> as Mathias suggested.  But I think it would help synth to have
> user-oriented documentation similar to that for portmaster or
> portupgrade ("to achieve this, do this...").  I could see this as a
> good addition to the handbook (4.5.3.3).  A(n objective) discussion of
> the pros and cons of the three alternatives would also be useful.

Having been in the situation of doing such a discussion some 10 years ago,
when portupgrade and portmaster were the fashionable tools, and pkgng
did not exist, i was very interested to discover this tool synth that i 
had never heard of.


Of course unable to find it in the ports i finally found it was a 
DragonFly port very recently
ported to FreeBSD, and then that it was written in Ada. Next task find 
the Ada compiler.
Needless to say, no port named ada under lang, finally found it was 
gcc5-aux. Downloaded
the packages for gcc5-aux and ncurses the port for synth from SVN 
repository, and began compiling.

Somewhere the build broke because of unsupported
pragma Suppress (Tampering_Check);
but after removing this line i had finally a brand new synth.
Frankly one first prerequisite for having this discussion is that the 
*package* synth is ready to be downloaded

and people don't have to go through this ordeal.

Immediately i wanted to test it on a port which is not too much 
connected to other stuff

so i did after synth configure
synth status
and
synth build lang/chicken.
The first one bombed since there was a problem with the options on some 
port. I solved it as required and

synth status gave some answer.
Then the second one decided it needed to recompile 6 ports and started 
doing it. The nice curses
screen appeared, which for sure is beautiful but doesn't say much about 
what is going on.
Fortunately i discovered beautiful logs under /var/log/synth, and 
apparently the 6 builds went OK.
Then it asked me to scan the ports tree which took ages, finally to 
discover that my builds failed

"option check" and do nothing.
This prompted me to try understanding what the crap synth was doing, and 
i finally found that the
"repository" was the place under /usr/obj where synth moved all the 
packages it had compiled, that
there was a ton of mounts under /usr/obj reproducing a clean room 
freebsd system to compile the port.
That the long operation above consisted in running make -V in a lot of 
ports to discover the value
of certain variables which is usually done to compute the INDEX in 
/usr/ports, and that, due to the
above failure the corresponding packages had been removed from the 
repository.  Part of this information
i obtained by looking at the code which is surprisingly readable for 
someone who doesn't know ada.

The exact

This little story leads me to a second prerequisite, produce a more 
complete documentation describing exactly
what synth does, how to solve buggy situations etc. The argument "the 
soft can be directly used by newbies

without documentation" i don't buy.

Finally lets us target the center. I like very much the idea of using 
these mounts to compile the packages.
It is fast and simpler than jails. I also like the idea of doing several 
things simultaneously. Is it really necessary
to use thousands and thousands of lines of code to do that? Concerning 
the objection that portmaster
has no dependency while synth has dependencies i think this objection 
has no merit since it is a binary
which will run without problem, its data structures being in memory. 
This is in great contrast with portupgrade
where if you upgrade ruby when portupgrade runs, you are in a mess (or 
if you upgrade the db that
portupgrade uses). I have not seen if synth checks for circular 
dependencies, portupgrade certainly

did it.

In summary, synth seems to be a very nice work. As an exercice in shell 
writing, portmaster is
certainly a master's work, but it is a poor substitute to a real 
management tool. Portupgrade
was more ambitious, but had too many problems and was incredibly slow. 
So i think J. Marino
is right, better bite the bullet as soon as possible, polish whatever 
needs polishing, update the documentation
and go ahead.  The fact that synth is written in a relatively obscure 
language can be a deterrent,

but in fact it is very readable by non ada practitioners.








--
Michel Talon

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


Re: [FreeBSD-Ports-Announce] Time to bid farewell to the old pkg_ tools

2014-02-06 Thread Michel Talon

Le 6 févr. 2014 à 13:27, Julian H. Stacey a écrit :

 
 you =
 have to spend a couple of minutes
 learning the basic SQL queries, which is no more difficult that learning =
 obtuse find and grep options.
 
 Package addicts were so myopic they ignored some people won't even
 use packages, just /usr/ports  make.  local.sqlite was immaturely
 shoved in without documenting it, no man 5 local.sqlite no hook
 there for the couple of minutes learning you assert, (no hook to believe
 the couple you assert).

First please excuse me, this message is posted via an Apple mail system. So
how to interact with local.sqlite?

niobe% sqlite3 local.sqlite 
SQLite version 3.8.2 2013-12-06 14:53:30
Enter .help for instructions
Enter SQL statements terminated with a ;
sqlite .tables
annotation   options  pkg_script 
categories   packages pkg_shlibs 
deps pkg_annotation   pkg_shlibs_provided
directories  pkg_categories   pkg_shlibs_required
filespkg_directories  pkg_users  
groups   pkg_groups   script 
licenses pkg_licenses scripts
mtreepkg_option   shlibs 
option   pkg_option_default   users  
option_desc  pkg_option_desc

sqlite .schema packages
CREATE TABLE packages (id INTEGER PRIMARY KEY,origin TEXT UNIQUE NOT NULL,name 
TEXT NOT NULL,version TEXT NOT NULL,comment TEXT NOT NULL,desc TEXT NOT 
NULL,mtree_id INTEGER REFERENCES mtree(id) ON DELETE RESTRICT ON UPDATE 
CASCADE,message TEXT,arch TEXT NOT NULL,maintainer TEXT NOT NULL, www 
TEXT,prefix TEXT NOT NULL,flatsize INTEGER NOT NULL,automatic INTEGER NOT 
NULL,locked INTEGER NOT NULL DEFAULT 0,licenselogic INTEGER NOT NULL,time 
INTEGER, manifestdigest TEXT NULL, pkg_format_version INTEGER);
CREATE INDEX pkg_digest_id ON packages(origin, manifestdigest);


sqlite select name,version from packages limit 10;
pkg|1.2.5
xproto|7.0.25
xextproto|7.2.1
xbitmaps|1.1.1
renderproto|0.11.1
libXdmcp|1.1.1
libXau|1.0.8
libxml2|2.8.0_3
libpthread-stubs|0.3_4
kbproto|1.0.6

and to replace grepping

sqlite select name,version from packages where name like '%kde%' limit 10;
kdehier4|1.1.1_1
kde4-wallpapers-freebsd|1.0
pam_kde|1.0
kde4-xdg-env|1.0.1
kde4-icons-oxygen|4.10.5
kde4-shared-mime-info|1.2
kdelibs|4.10.5_2
kde-wallpapers|4.10.5
kde-base-artwork|4.10.5
polkit-kde|0.99.1


sqlite .quit
niobe% 

From this it is easy to experiment, and  the full sqlite documentation is at:

http://www.sqlite.org/lang.html



--

Michel Talon
ta...@lpthe.jussieu.fr







smime.p7s
Description: S/MIME cryptographic signature


Re: [FreeBSD-Ports-Announce] Time to bid farewell to the old pkg_ tools

2014-02-05 Thread Michel Talon
ports/ is not just for package addicts.  I never install packages,
but only build  install from ports/.  sqlite junk obstructs
/var/db/pkg being accessed by find  grep to debug breaking ports builds.

As someone who has advocated the use of sqlite to replace the old database in 
the filesystem
several years before it has been implemented by the new package system, i can 
only conclude, like
Matthew that you are being absurd. The old package system was total crap, 
incredibly slow and
using system resources in absurd ways. Sqlite obstructs nothing, you have to 
spend a couple of minutes
learning the basic SQL queries, which is no more difficult that learning obtuse 
find and grep options.
Moreover i have hard time believing one needs to dissect the package system 
(beyond reading the 
output of pkg info) to debug a port build. One surely needs some knowledge of 
make, C, perhaps C++
which is vastly more difficult than figuring how to extract the content of the 
sqlite database.
Finally i confess i am a package addict. Insisting that people use packages is 
the best way to ensure
that the ports can indeed be built and that the result works. I have spent too 
many hours editing
C files and makefiles in the past in the hope of getting something to build, 
now i want that it
just works, like it does with the likes of Debian, etc. I am very grateful to 
Baptiste, Matthew and
al. to the excellent job they have done, finally FreeBSD has a decent 
infrastructure for 
external software. The new package system is fast, efficient, and very 
importantly lists all
the things it will do before doing them (like Debian apt), which allows to 
avoid ruining a working system,
a very common occurrence in the old package system. So it does most of the 
things that i thought
were necessary to come to parity with apt, and is light years ahead of the old 
system. 


--

Michel Talon
ta...@lpthe.jussieu.fr







smime.p7s
Description: S/MIME cryptographic signature


Re: Any newer latex than latex2e-2003.12_1

2014-02-01 Thread Michel Talon
You can install dvipsk-tetex.

By the way you can also run maxima in GUI mode by running wxMaxima. All of them 
nicely
available in precompiled form thanks to the excellent work of the FreeBSD team. 
The
new pkg system is wonderful, finally FreeBSD is on par with Debian or ArchLinux
for ease of use.

--

Michel Talon
ta...@lpthe.jussieu.fr







smime.p7s
Description: S/MIME cryptographic signature


Graphing installed ports

2013-11-23 Thread Michel Talon
The following script
http://www.lpthe.jussieu.fr/~talon/check_pkg.py
does the job you want plus other things, but it was written for the old package
system (i.e. it looks under /var/db/pkg). 

By the way i noted that as soon as you have a fair number of ports installed, 
you get
so many arrows in the diagram that you cannot see anything, rendering the idea
quite useless. I hoped one could discover islands with little interconnections 
between them
but in fact mostly everything becomes connected by dependency.



--

Michel Talon
ta...@lpthe.jussieu.fr







smime.p7s
Description: S/MIME cryptographic signature


Re: [HEADSUP CFT] pkg 1.0rc1 and schedule

2012-07-12 Thread Michel Talon
Doug Barton wrote:
 What I'm looking for is compelling motivation to make this overwhelming
 change to the ports infrastructure.
Because the present state of the ports system is not a compelling enough 
reason?  My
arms are falling …



--

Michel Talon
ta...@lpthe.jussieu.fr







Re: Port suggestion: REDUCE (math) is available under a BSD license

2012-03-18 Thread Michel Talon
See
http://lists.freebsd.org/pipermail/freebsd-ports/2011-December/071814.html

--

Michel Talon
ta...@lpthe.jussieu.fr





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


Re: Please update lang/cmucl to 20c

2012-02-27 Thread Michel Talon
 any chance to see cmucl-20c (including cmucl-extras) in ports,
 while at the same time keeping the current lang/cmucl as, say,
 lang/cmucl19, because that version still supports non-SSE2
 CPUs?

The sse2 version is indeed much faster, and works on quite old computers 
nowadays
so i am not sure that the generic version is still useful.

 And while I'm asking for it, could the cmucl port include
 the sources (perhaps from the source release tar ball or
 as part of the building-from-source process?) in such a
 way that it is available from within lisp itself?

In fact the exact position of the source code from which the binary has been 
compiled
is annotated in the binary, so the only solution to make debugging, etc. work 
is to
avoid completely moving the source code after compilation. So practically you 
have to compile
cmucl (or sbcl) in your home and live it here. The ports system is useless here.



--

Michel Talon
ta...@lpthe.jussieu.fr





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


Re: A new and better way to do make readmes?

2012-01-28 Thread Michel Talon
Matthew Seaman said
The big problem with performance in all this INDEX and README.html
building is that it takes quite a long time relatively to run make(1)
within any port or category directory.  make(1) has to read in a lot of
other files and stat(2) many more[*] -- all of which involves a lot of
random-access disk IO, and that's always going to take quite a lot of
time.  Now, doing 'make readme' in a category directory doesn't just run
make in that directory, but also in every port in that category.
Popular categories can contain many hundreds of ports.

Maybe I should add README.html generation to my FreeBSD::Portindex
stuff.  Should be pretty simple -- all the necessary bits are readily
available and it is just a matter of formatting it as HTML and printing
it out.

Indeed, the following python script
http://www.lpthe.jussieu.fr/~talon/show_index.py
parses the index in a few seconds and can display exactly the same information 
as the
readme.html on demand in a web browser, which is far cleaner than polluting the 
ports tree
with the readmes. Alternatively i have a fcgi version that can be coupled to 
web servers
supporting fcgi like lighttpd.
http://www.lpthe.jussieu.fr/~talon/show_index.fcgi
Already 5 years this was done  ...


--

Michel Talon
ta...@lpthe.jussieu.fr





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


Re: Is there a port to math/reduce?

2011-12-13 Thread Michel Talon
 the computer algebra system (CAS) REDUCE has been
 released as open source software [*], but AFAICS, it has not
 yet been ported to FreeBSD. Anyone with porting skills
 interested to have a look?

I have tried and apparently succeeded in building reduce on FreeBSD.

Here is what i get:

niobe% bin/redcsl
Reduce (Free CSL version), 13-Dec-11 ...

1: (x+y)^4;

 4  32  234
x  + 4*x *y + 6*x *y  + 4*x*y  + y


What i have done: downloaded reduce from subversion,
then you have the choice of two lisps to build reduce
psl and csl. Since i don't know how to get psl for FreeBSD
i have done

configure --with-csl
gmake

(note Gnu make).

This does a lot of configuration, then builds the fox toolkit and then
builds csl. Here i got two errors.
One is in 
reduce-algebra/trunk/csl/cslbase/fns1.c
One needs to add 
#include sys/time.h
for example after headers.h, otherwise timeval is unknown later on.

The second is about RLIM_SAVED_MAX and RLIM_SAVED_CUR undefined in 
reduce-algebra/trunk/csl/cslbase/csl.c
These are resource limits related to getrlimit(), which don't exist as
such in FreeBSD. I have replaced the test at lines 1417 1418 by
if (stackLimit != RLIMIT_VMEM)
which i hope is correct.

Then csl builds to the end and then reduce builds. At the end you get:

Info: Recompilation complete
if test -f reduce.app/Contents/reduce.img; \
then cp reduce.app/Contents/reduce.img
/home/michel/pub/reduce-algebra/trunk/csl/cslbase/../../cslbuild/generated-c;
\
elif test -f reduce.img; then cp reduce.img
/home/michel/pub/reduce-algebra/trunk/csl/cslbase/../../cslbuild/generated-c;
fi
scripts/make.sh: arith: syntax error: 00 ? 0 : 0

I was puzzled by that, but in fact it means the build of reduce is
completed. At this point you can run reduce as above.


Now gmake install doesn't work and produces an infinite number of
submakes. I don't know how to make a proper install.


Hope this may help you to do a  port 






-- 

Michel TALON

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


Re: How to resurrect ltrace from Attic?

2011-09-18 Thread Michel Talon
Note that the source code can be obtained from Debian, apparently.
Does it work, i don't know.

-- 

Michel TALON

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


Re: Detecting dependencies

2011-09-16 Thread Michel Talon
Oliver Fromme wrote:

That's what a script of mine does (it's also in Python):

http://www.secnetix.de/olli/scripts/pkg_dep_view

Waooh! this is very cute.

While we are in python i have something which draws 
graphviz dependency graphs for ports here
http://www.lpthe.jussieu.fr/~talon/pkg_check.py

Unfortunately for many ports the diagram becomes completely
unreadable. Your display is wonderful.

Seeing things like your script, the perl script port-easy by des, etc.
i really wonder why people write stuff in C or worse shell for ports.
One could write ten times smarter and ten times shorter things in real
languages like python, lisp, etc. This argument of being included in
base system is so completely bogus ...


-- 

Michel TALON

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


Re: testing PKGNG

2011-09-13 Thread Michel Talon
Sergio wrote:

I moved all my servers (about 40) to the pkgng (new generation)
package/port 
system, and I can say that it is amazing... it is not yet finish, and
have some
minor issues, but works very well, and is lightning fast..  

It is almost the same as pacman  (from Archlinux)..  you build a 
repository  and install packages from that repository. when you
update the repository, the other servers can do an upgrade.. 
you do not have to have the ports tree in each server, and
you build the ports only on the master server

in the master server, there is a full gnome2 (with 842 dependencies)
that install right on the shelf with only one command: pkg install
gnome2
now I have a full functional server runing gnome, libreoffice, inkscape
hplip, cups printing, gdm...  in about 30 minutes from internet

I am extremely interested by what you are saying here. Do you mean that
you can find somewhere precompiled packages that you can install in 30mn
or that you use packages compiled on a master server? Of course the
difference is that if you have just one machine in the basement instead
of a server farm, the point of view is not the same ...

By the way if you mention that pkgng shares something to some penguinist
system, beware it will be villified by some guardians of the orthodoxy
who are quite vocal. Anyways if it is indeed fast it will make a happy
difference with the present pkg-* tools. 



-- 

Michel TALON

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


Re: ports-system priorities rant (Re: sysutils/cfs)

2011-09-08 Thread Michel Talon
Mikhail T. wrote:
Having to deal with RedHat's yum at work, I got to say, I'd rather be
building from source, than installing from consistent packages, that
somebody else built *to their* tastes.


Fedora crap is a very bad example. The canonical example of a binary
distribution which *works* is Debian. You can always very easily compile
a source Debian package to *your* taste, almost as easily as a FreeBSD
port. You don't need to compile the hundreds of packages that sit on
your hard disk, maybe you are interested in tweaking a couple of ports
to your liking and you get the benefit of a much faster installation and
upgrade of all the pristine packages.

No, I don't want FreeBSD to go in that direction 
at all. Let RedHat cater to that market

While i think that going in this direction will be very beneficial to
FreeBSD and that ReHat doesn't come anywhere close to cater to this
market (i work in a lab which is almost 100% RedHat since many years,
and i am not happy at all with that. As much as Ubuntu is despised
here, it is light years ahead of the Fedora always beta stuff).




-- 

Michel TALON

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


Re: [ANNOUNCE]: clang compiling ports, take 2

2011-09-04 Thread Michel Talon

Ruslan wrote:
 Hi, i maintain port (sysutils/rdup) that is failing with clang:

I have looked at the problem, it is indeed in rdup source. If you look
at rdup git history for rdup-tr.c you will see 

remove rdup_entry_c from the code, totally unneeded

in this modification, the line 
rdup_entry_c = rdup_entry;
which makes sense is (probably automatically) replaced by the line
rdup_entry = rdup_entry;
which is superfluous. 
gcc doesn't bark at that while clang does.



-- 

Michel TALON

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


Re: suggestion for pkgdb from ports-mgmt/portupgrade: add more explanation

2011-09-02 Thread Michel Talon

Robert Huff said:

Michel TALON writes:

  Finally
  the file UPDATING should be forcefully removed from the system

   While I support all reasonable efforts to get automation to
always Do The Right Thing(tm), my reaction to this is: absolutely
not.
   Until you can show there are no, and will never again be, edge
cases which break the system, documention for human invervention is
always the right choice.



Your answer is very interesting and allows me to go further in the
reasoning. Indeed the UPDATING file is here to solve edge cases. My
point is that there shouldn't be any edge cases, if there are some it is
because something somewhere has been ill designed, which is not so
suprising since the system has been conceived by Jordan Hubbard when the
number and complexity of ports was much smaller. I certainly don't have 
any precise idea of the things which should be changed so that edge
cases disappear, only *very experienced* people having observed a lot
of failure cases could give correct advices. It is not impossible to
design a system which works automatically without having any recourse to
manual intervention, after all, as much as it may displease some people
here, it is a fact that Debian works this way (and Debian-like systems
like Ubuntu). Having a file which documents manual intervention is a
perpetual tentation to do the things the sloppy way, which in fact
frequently occurs in FreeBSD. As long as such a behavior continues, the
authors of portupgrade, portmaster etc. are building on sand.



-- 

Michel TALON

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


Re: suggestion for pkgdb from ports-mgmt/portupgrade: add more explanation

2011-09-01 Thread Michel TALON
Julian H. Stacey wrote:

 Suggestion: pkgdb is too cryptic even with -v,
 it needs more explanation what it is up to  
 particularly what decisions it asks from user
 .


This is a point i have studied a long time, notably i have read the ruby
code doing that. There are a lot of heuristics doing automatic choices,
when they fail they ask the end user. The whole stuff is quite
complicated, and asking questions to the user is certainly not the
solution, since he has no business knowing the necessary details. In
practice he does arbitrary (usually bad) choices and the system
degrades. In general one should always be able to make these decisions
automatically using the MOVED file, which is what portmaster does
(barring some exceptions which occur from time to time and are supposed
to be documented in UPDATING - which is an offense to the automaticity
of the system). I thing that portupgrade should be modified to remove
all those heuristics and use MOVED, but the code is not so obvious to
understand, and ruby (as far as i am concerned) doesn't help. Finally
the file UPDATING should be forcefully removed from the system, and
ports maintainers should get at the same effect through means which
don't prevent automatisation (for example upping the revision levels of
all appropriate ports, even if they are very numerous). At the end of
the day, portupgrade is so awfully slow that i think moving away from
ruby could also help in this respect.

-- 

Michel TALON

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


Re: Ports system quality

2011-08-30 Thread Michel Talon
Chad Perrin wrote:

Of course, your goal is apparently to
convince me that yours are the correct priorities.

Indeed i think having the correct priorities is essential when choosing
between different options, and i am sincerely convinced that my choices
are shared by a lot more people than yours. For example, having less
bloat in the system doesn't even appear in the radar of most people.
I value much more that hardware is supported, that installation and
upgrade are easy, troubleless. Like everyone else i am irritated by 
some developments in the Ubuntu experience, for example the parallel
booting stuff, which doesn't work well (but that people would like to
imitate in FreeBSD), but all those problems remain minor. A few days ago
i went to a store to buy a new laptop, i went with two CDROMs, an Ubuntu
one and a FreeBSD one. Guess which of the two supported the network 
controllers in the laptops i tried?


-- 

Michel TALON

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


Re: Ports system quality

2011-08-29 Thread Michel Talon
Chad Perrin said:

On Mon, Aug 29, 2011 at 12:17:12AM -0700, Doug Barton wrote:
 FreeBSD needs to get better in this area, but I seriously doubt it
 will
 ever be as easy and painless as something like ubuntu.

For a great many use cases, Ubuntu is one of the most painful desktop
user experiences I have ever encountered.  Please, *please* do not
emulate Ubuntu.

Any discussion on such subjects should begin by switching off the reality
distortion field. For *my own experience* Ubuntu works perfectly OK, in
particular all the hardware on my laptop works, suspend works, i have
zero problem keeping the ports updated, etc. It is the completely no
fuss solution. Wether FreeBSD needs to go in a direction or another is a
different subject, but *please* be objective in your descriptions.

By the way:
it installs software and runs
servers the user will never have any occasion to use, with no obvious
way
to deactivate them; and it essentially enforces the use of huge
collections of software by way of hopelessly intertangled dependencies.

is a sentence you can easily apply to any modern system. And most users
could not care less that there is *bloat* on their hard disk. Anyways
you can find a functional and installable desktop Ubuntu system
on a simple CDROM, show me the same for FreeBSD and i will happily
conclude it is less bloated. And for the same price you have on said
CDROM a live system and an installer which is not a joke like FreeBSD
one. Wonder why one system has more users than the other ...


-- 

Michel TALON

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


ruby-rbtree

2011-08-23 Thread Michel Talon
It appears ruby-rbtree is marked deprecated because the master site has
disappeared.
In fact it has moved here:
http://rubyforge.org/frs/download.php/67118/rbtree-0.3.0.tar.gz
 
-- 

Michel TALON

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


Re: FreeBSD unmaintained ports which are currently scheduled for deletion

2011-08-21 Thread Michel Talon
I notice in the list the port math/pari which is not some obscure
abandonware, but one of the most proeminent free computer algebra software.

So i look at the pari web page and then:

niobe% fetch
http://pari.math.u-bordeaux.fr/pub/pari/unix/pari-2.5.0.tar.gz
pari-2.5.0.tar.gz 100% of 2650 kB 6412 kBps

.


niobe% ./Configure 
Configuring pari-2.5.0 (STABLE) 


Ok. Type make install when you are ready
Bye !

niobe% gmake gp
Making gp in Ofreebsd-i386



niobe% cd Ofreebsd-i386 
niobe% gp-dyn
 GP/PARI CALCULATOR Version 2.5.0
(released)
 i386 running freebsd (ix86/GMP-5.0.1
kernel) 32-bit version
compiled: Aug 21 2011, gcc-4.2.1
20070719  [FreeBSD]
   (readline v6.1 enabled, extended help
enabled)

   Copyright (C) 2000-2011 The PARI
Group

PARI/GP is free software, covered by the GNU General Public License, and
comes WITHOUT ANY WARRANTY WHATSOEVER.

Type ? for help, \q to quit.
Type ?12 for how to get moral (and possibly technical) support.

parisize = 400, primelimit = 500509
? 5*6
%1 = 30
? 

In other words everything works completely out of the box, without any
intervention. 


After that people will say that the freebsd ports are the best thing
since sliced bread!



-- 

Michel TALON

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


Re: FreeBSD unmaintained ports which are currently scheduled for deletion

2011-08-21 Thread Michel Talon
Kurt Jaeger wrote:

 Looks like the outdated version we have in ports isn't kept there any
 more. Would you like to be the port's new maintainer?

I'll have a look at it.

I have played a little with the FreeBSD port for pari:

One needs to modify very little the Makefile:

CONFIGURE_ARGS= --prefix=${PREFIX} --share-prefix=${PREFIX}/share\
--mandir=${PREFIX}/man/man1 --with-gmp=${LOCALBASE}

This is so that the man pages go to the correct position.


MAJOR_VERSION=  2
MINOR_VERSION=  5
REV_VERSION=0

I think all the emacs stuff has become useless.

The good distinfo is

niobe# cat distinfo
MD5 (pari-2.5.0.tar.gz) = 6077c6db56fdd32e39a06a9bf320e1f7
SHA256 (pari-2.5.0.tar.gz) =
5dc923b001ca0f8664facfafcd91946be63faf8f0e1df4b11bfac80f89ec37a2
MD5 (pari-2.5.0.tar.gz) = 0b595a1345679ff482785a686c863e9f
SIZE (pari-2.5.0.tar.gz) = 2714449


The patch files in files/ don't apply cleanly and are useless, except
patch-config-TOP_Make.SH
which removes compiling the doc. This may be fine because the doc is on
the web site, and requires TeX for compiling. Anyways the doc
compile needs make - gmake (and then works) but i don't know how to 
pass that to the system.

The make install installs less files than what is in pkg-plist.
In /usr/local/bin:
gp gp-2.5 gphelp tex2mail

In /usr/local/include/pari
genpari.h  pari.h paricfg.h  paridecl.h parigen.h  parinf.h
paripriv.h parisys.h
mpinl.hparicast.h paricom.h  parierr.h  pariinl.h  pariold.h
paristio.h paritune.h

In /usr/local/share/pari:

niobe# ls -R /usr/local/share/pari
PARI  doc   examples  misc  pari.desc

/usr/local/share/pari/PARI:
822.pm

/usr/local/share/pari/doc:
Makefile  appd.tex  parimacro.tex refcard.pstutorial.dvi
users.tex usersch3.tex
appa.tex  libpari.dvi   pdfmacs.tex   refcard.tex   tutorial.tex
usersch1.tex  usersch4.tex
appb.tex  paricfg.tex   refcard.dvi   translations  users.dvi
usersch2.tex  usersch5.tex

/usr/local/share/pari/examples:
EXPLAIN Makefilecl.gp   contfrac.gp lucas.gpsqufof.gp
Inputrc bench.gpclassno.gp  extgcd.crho.gp  taylor.gp

/usr/local/share/pari/misc:
READMEcolor.dft gpalias   gpfloggprc.dft  pari.xpm  xgp
niobe# ls -R /usr/local/share/pari
PARI  doc   examples  misc  pari.desc

/usr/local/share/pari/PARI:
822.pm

/usr/local/share/pari/doc:
Makefile  appd.tex  parimacro.tex refcard.pstutorial.dvi
users.tex usersch3.tex
appa.tex  libpari.dvi   pdfmacs.tex   refcard.tex   tutorial.tex
usersch1.tex  usersch4.tex
appb.tex  paricfg.tex   refcard.dvi   translations  users.dvi
usersch2.tex  usersch5.tex

/usr/local/share/pari/examples:
EXPLAIN Makefilecl.gp   contfrac.gp lucas.gpsqufof.gp
Inputrc bench.gpclassno.gp  extgcd.crho.gp  taylor.gp

/usr/local/share/pari/misc:
READMEcolor.dft gpalias   gpfloggprc.dft  pari.xpm  xgp

And finally the man pages in /usr/local/man/man1
gp-2.5.1 gp.1 gphelp.1 pari.1 tex2mail.1
and the compressed versions.

Good luck

-- 

Michel TALON

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


Re: UPDATING 20110730

2011-08-01 Thread Michel Talon
Doug wrote:
 Unfortunately the only way to improve on this would be to not do the
 checks on a port-by-port basis, and do them all together at the end.
 While that sounds appealing, it would dramatically increase the code
 complexity, and also dramatically increase the chances of leaving the
 pkg files in an inconsistent state if the process gets interrupted. I
 don't like either one of those options.

In here i have a program which checks the +REQUIRED_BY files and
fixes the origins in +CONTENTS
http://www.lpthe.jussieu.fr/~talon/check_pkg.py
proceeding globally as you describe above. It would not make a big
difference to completely fix the +CONTENTS.
On an old machine with around +1000 ports installed it takes of the
order of 10-30 seconds to run. Of course this is very fast because it
uses the information in the INDEX file. If one accepts to download the
INDEX (like portupgrade does) this is no problem. If one wants to rebuild
the index from the ports, it takes time, but one can build a partial
index for the installed ports (and dependencies). This is done in
http://www.lpthe.jussieu.fr/~talon/pkgupgrade
and takes someting like 1-2mn on the same machine.
So there are ways to speed up the bookeeping done by programs like
portupgrade, portmaster, but, as you are saying, doing this job between 
*each* port upgrade is far more time consuming. Of course the complexity
is also increased, perhaps shell scripting is not the good tool to do that
i don't know. Moreover i am not convinced that continually forking tons
of programs can be very fast, and it would be nice to be able to exploit
parallelism on modern multiproc machines.



-- 

Michel TALON

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


Re: UPDATING 20110730

2011-08-01 Thread Michel Talon
Le Monday 01 August 2011, Doug wrote:
 
 A lot of people say that, but I'll stack it up against just about any
 interpreted language. Some of my routines are actually faster than the
 equivalents in pkg_info (which is why I use them).


Yes, i have seen that  portmaster is quite fast. I was meaning that shell
scripting is not the clearest tool  to program complex stuff, but of course
this is dependant on each person.  As for the  pkg*  stuff  they are written 
in C, but this is irrelevant enough if they do a lot of IO, or use poorly 
performing algos.  I remember that Marc Espie said that, after having 
rewritten the OpenBSD equivalents in perl, they were both clearer and
more powerful, and much faster. The slowness gripe i have is about 
portupgrade. This is particularly obvious when running portupgrade -PP, which 
may take hours to upgrade a machine without spending any time in 
compilation. As far as i have understood the pkg* tools are presently being 
rewritten by a FreeBSD team, i hope the new tools will be much better. 
This being said if an upgrade tool needs to compute (partially) the INDEX, 
most of the time is spent in running  make -V  variables in each port,
because make has to read and interpret enormous files. I don't see any way to 
cut on that, or one should need to develop a special purpose version of  make
to evaluate these variables,  perhaps which should keep persistent 
computations between ports (but this is dangerous).
___
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to freebsd-ports-unsubscr...@freebsd.org


Re: UPDATING 20110730

2011-08-01 Thread Michel Talon
On Mon, Aug 01, 2011 at 01:59:08PM -0300, Sergio de Almeida Lenzi wrote:
 Hello
 
 Even I use portmaster (a very good piece of software),
 it becomes very slow when you have 1550 ports installed in your
 system.
 
 As only a few ports (about 100, in my case)  changes in a week time,
 I build a database (postgres) that contains all the ports installed,
 de depencies and a flag that tells me if that port needs updating
 (pkg_version)
 a shell script scans the ports (pkg_info | cut -d ' ' -f 1) and builds
 the database once a week (can take several hours... 
 
 Once the database is built,  an sql query (only ms...) tells me what to
 do...
 it then executes pkg_delete, cd /usr/ports/..., make clean all package..
 and after doing all the job, it updates the postgresql database
 (seconds... ).
 
 In my case I use a central server with all the 1550 ports... and all I
 do
 is to install them on the slaves, (again, using the postgres database
 data)...
 
 Hope this can give someone some ideas
 
 Sergio

Some years ago the idea floated around to use a sqlite database to keep
a fast access copy of the important data in /var/db/pkg, but this idea
was dismissed for various reasons, in particular the fact that the
base system has the Berkeley database, or that using the filesystem as a
poor man's database was a better idea.


-- 

Michel TALON

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


Re: UPDATING 20110730

2011-08-01 Thread Michel Talon
On Mon, Aug 01, 2011 at 09:39:05AM -0700, Jos Backus wrote:
 On Aug 1, 2011 7:10 AM, Michel Talon ta...@lpthe.jussieu.fr wrote:
 [snip]
  This being said if an upgrade tool needs to compute (partially) the INDEX,
  most of the time is spent in running  make -V  variables in each port,
  because make has to read and interpret enormous files. I don't see any way
 to
  cut on that, or one should need to develop a special purpose version of
  make
  to evaluate these variables,  perhaps which should keep persistent
  computations between ports (but this is dangerous).
 
 Or don't store lots of data in files in Makefile format. The make language
 is a poor data storage format that doesn't allow access to that data from
 other tools easily or efficiently. I'm struggling with a similar problem at
 $WORK.
 
 Jos

This is unfortunately impossible because the ports system is organized
around a make logic and the relevant dependency variables are only
obtained through running make on each ports Makefile *in the context* of
the gigantic makefiles (bsd.port.mk, etc) which are included.


-- 

Michel TALON

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


Re: Time to mark portupgrade deprecated?

2011-07-30 Thread Michel Talon
Chris Brennan wrote:

 On 7/26/2011 3:28 PM, RW wrote:
  It seems more reasonable than the idea that most people using FreeBSD
  are doing so despite being very unhappy with FreeBSD ports. If
  that's=
 
  really true then we should give Beastie nipple-clamps and a ball-gag
  to=
 
  better appeal to our key demographic.
  ___
  freebsd-ports@freebsd.org mailing list
  http://lists.freebsd.org/mailman/listinfo/freebsd-ports
  To unsubscribe, send any mail to
  freebsd-ports-unsubscr...@freebsd.org=
 
 
 +1 just because the thought of that is funny as hell!

As a testimonial to the diabolical nature of FreeBSD yesterday i have
installed a PC with FreeBSD-8.2 RELEASE, using the distributed packages
(pkg_add -r). When installing gimp, something went south. After some
checks it was avahi-app which refused to install, the reason being
that pw groupadd -n avahi failed, with the message:
group disappeared during update
This from /usr/src/usr.sbin/pw/pw_group.c  line 271.
How is it that such an error, perhaps due to some 
concurrent access bug, happens in such an irregular way that it is
still present since many years? In my installation, several other
packages used pw to add to the group and passwd files (hald, etc.) but
the error was triggered only by avahi-app, on the other hand it was 100%
reproductible for avahi-app.  I have seen this problem many times in the
past.

The only way i was able to proceed was to run
pkg_add -I -r avahi-app
after that the other dependencies of gimp and gimp itself installed OK.
I don't remember that this error was blocking in this way in the past,
but it is very worrisome, i don't see a beginner being able to cope with
such problem.

Still another problem in my installation i have an inn server which sucks
news via newsx. Inn installed OK but newsx doesn't appear on the freebsd
repository. I try to compile newsx, of course it fails. The reason? 
the inn installation lacks all the configuration files under
/usr/local/news/etc  !  More than that the conf files appear nowhere
on the machine! How a user is supposed to figure out how to write such
files without the models at hand? I have installed inn several times,
i have never seen that. Some maintainer has found judicious to remove
the conf files (perhaps to avoid overwriting a preexisting installation,
but this is the bad way to solve the problem). Anyways, without
etc/inn.conf,  newsx cannot compile, since it picks its own
configuration from inn.conf. So by doing this change the inn maintainer
has broken newsx inadvertently, and of course no one noticed.
This is emblematic of many other ports which are mismanaged, introduce
tons of unnecessary dependencies which complicate everything, etc.
For example, installing the port xorg installed things such as pyton and
ruby which have zero relation with the problem at hand. It also
installed perl but this is required for autoconfiguration of the server,
i think. On the bright side, installing xorg produced a working X11
display without any configuration except running dbusd and hald.

I have at least one positive point to report, for the first time i see
printing working in wxMaxima, in the past either it didn't work at all
or coredumped. So someone has understood the printing problem in the wx
toolkit, this is nice.

This post is ways too long, but i hope more informative that comments
such as 
Nuts
ushered by some phd student who apparently value himself at
tremendous heights.  As to the poster objection, one may very well use
FreeBSD for some other qualities, even if one is not happy with the
state of the ports system. And to the more general objection that all
this is unrelated to the thread subject, portupgrade, it is 
*extremely* related, because no upgrading tool can work, be it 
portupgrade, portmaster, or whatever, in the presence of the sorts of
bugs i have described above in the basic ports system. An obvious flaw
of portupgrade is that it is very slow, other than that i think it is a
pretty good program.  Similarly portmaster is a brilliant example of
shell scripting and works OK as far as i can see. The real problems are
in the ports system itself.



-- 

Michel TALON

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


Re: nscd vs. ports that add user/group (Was: Time to mark portupgrade deprecated?)

2011-07-30 Thread Michel Talon
On Sat, Jul 30, 2011 at 04:02:55PM +0400, Test Rat wrote:
  Did you have nscd(8) running at the time? Try invalidating its cache.
 
 Nevermind previous patch. This one actually works.

You may be perfectly right, i think i have added nscd to the
installation after having added hald, etc. but before adding
avahi-app. However i have seen such problems in the past, before the
introduction of nscd, as far as i remember.

 
 %% it's still an ugly hack
 Index: usr.sbin/pw/pwupd.c
 ===
 --- usr.sbin/pw/pwupd.c   (revision 224499)
 +++ usr.sbin/pw/pwupd.c   (working copy)
 @@ -191,6 +191,7 @@ pw_update(struct passwd * pwd, char const * user,
   }
   }
   }
 + system(nscd -I passwd 2/dev/null 2);
   return rc;
  }
  
 Index: usr.sbin/pw/grupd.c
 ===
 --- usr.sbin/pw/grupd.c   (revision 224499)
 +++ usr.sbin/pw/grupd.c   (working copy)
 @@ -148,6 +148,7 @@ gr_update(struct group * grp, char const * group,
   }
   if (grbuf != NULL)
   free(grbuf);
 + system(nscd -I group 2/dev/null 2);
   return l;
  }
  
 %%

Many thanks for the suggestion.

-- 

Michel TALON

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


Re: Time to mark portupgrade deprecated?

2011-07-26 Thread Michel Talon
Jerry wrote:

 While we are on the subject of port management tools, I still use
 portmanager when a version bump on a port requires that a massive
 number of dependencies be rebuild. I have had all too many instances
 when both portupgrade and portmaster simply bombed out and left me
 with only a partially updated system, and in many cases, a virtually
 useless one. Portmanager would simple get the job done right the first
 time. It might be overkill for one or two port upgrades; however, it
 works fine on massive projects that seem to bewilder the other two
 competing contenders. The p5-libwww-5* example in the case of
 portmaster being a perfect example.

This subject of port management tools is a subject i have been much
interested in some years ago, and i must say that the problems which
seem to surface now in the general consensus, i had discussed them 
without any echo at the time. Having a system partially updated hence 
requiring a lot of work to fix with portupgrade happened to me several
times. Horrific slowness of portupgrade was perfectly obvious years ago.
I think most of the problems come from errors in the ports themselves
so are unfixable through ameliorations in the upgrade tools. I think
only a more rigorous management of the ports, i mean something like the 
separation between unstable, testing, stable in Debian, with rigorous
procedures for going from one state to the better one could cure this
problem, but at the expense of slowing the development. More
importantly, only a procedure centered around *binary* packages could
possibly lead to a guaranteed decent state of the ports. Centering
things around source code can only lead to confusion, incessant messing
by both developers and users with various options etc. which can only
destabilize the system. Anyways, to come back to port management tools 
i don't know how portmanager works, but i think that both portupgrade
and portmaster have a fundamental flaw in that they both work locally,
upgrading one port after another until the job is finished, which means
that the state of the machine is constantly modified, possibly into
a broken state, without any possibility for the user to know beforehand
that he is headed to failure. A proper tool should do a first pass
describing exactly the initial state and the final state so that the end
user can choose to upgrade or not. This is what Debian apt-get (or
aptitude) does, it describes before any destructive action begins what
will be removed, what will be installed. This can only work reliably if
you have binary packages, otherwise you can never be sure that a source
port will compile. The only *BSD i am aware of that has moved in that
direction is OpenBSD. From what i hear, people are happy with the
management of ports in OpenBSD, while most of people i hear are very
unhappy with FreeBSD ports.




-- 

Michel TALON

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


Re: Time to mark portupgrade deprecated?

2011-07-26 Thread Michel Talon
Le mardi 26 juillet 2011 12:38:35, vous avez écrit :


 Sure, why not kill one of the biggest strengths FreeBSD is known for
 while we're at it...

Or most obvious weakness ... The biggest strength was a good kernel, better 
than Linux, but this was years ago.

 
 Two questions:
 
 Who will provide the infrastructure to build me all of my packages the
 day/hour/moment moment I need them and constantly build me the i386,
 amd64, athlon-tbird optimized, k8-sse3 optimized, -O2 and -O3 optimized,
 intel-core optimized, and intel-p3 optimized batches for all of my
 machines?
 
 Who will constantly build and maintain my custom set of binary packages
 and all their dependencies built with the exact specific OPTIONS that I
 need and without the components that I don't want?

This stuff you are mentioning is the precise reason why people have problems 
with the ports system. By the way, all your optimisations have next to zero 
impact on performance, and introduce a sizable probability of bugs. And
the components you don't want use an infinitesimal part of your hard disk and 
nothing in your memory. At the end of the day this sort of feature buys no 
benefit at all and introduces an infinite combinatoric complexity for people
wanting to test the ports system.
___
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to freebsd-ports-unsubscr...@freebsd.org


Re: Why so many versions of the port science/hdf?

2011-05-10 Thread Michel Talon
The ports, different from octave, which use hdf, are, i think obtained
from the following:
in /usr/ports
jail1% grep hdf INDEX-8|awk -F | '{print $1}'|grep -v octave
gmsh-2.4.2_5
gmsh-occ-2.4.2_5
salome-5.1.4_1
salome-geom-5.1.4_1
salome-gui-5.1.4_1
salome-jobmanager-5.1.4_1
salome-kernel-5.1.4_1
salome-light-5.1.4_1
salome-med-5.1.4_1
salome-multipr-5.1.4_1
salome-netgenplugin-5.1.4_1
salome-randomizer-5.1.4_1
salome-sierpinsky-5.1.4_1
salome-smesh-5.1.4_1
salome-visu-5.1.4_1
salome-yacs-5.1.4_1
py27-tables-2.2.1
fr-aster-10.3.0.3_1
fr-gibi-2003.2_15
fr-homard-9.8.1
fr-med-2.3.6_3
grads-1.9b4_3
p5-NetCDF-1.2.4
scilab-5.3.1
scilab-toolbox-sivp-0.5.2
scilab-toolbox-swt-0.1.11
sedumi-1.1_3
cdo-1.4.7
cgnslib-2.5.5
ecs-1.3.3_5
fvm-0.12.0_4
gnudatalanguage-0.9_1
hdf-4.2r3_6
hdf-java-2.6.1
hdf5-1.6.9_1
hdf5-1.8.5
ics-1.3.3_2
meep-1.1.1_2
minc-2.0.09_1
mpb-1.4.2_10
ncs-1.3.3_7
netcdf-ftn-4.1.1
netcdf-4.1.1
paraview-3.8.1
py27-h5py-1.2.1_1
py27-netCDF4-0.9.3
hdf-szip-2.1_1
It is easy to get from the same INDEX the required hdf port.

-- 

Michel TALON

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


Re: Dropping maintainership of my ports

2011-04-27 Thread Michel Talon
Eitan Adler wrote:

 There is a lot of work that has to be done in the background even if
 no new ports are added. Things like the gmake upgrade and new ports
 features take a lot of time.  Furthermore adding a port seems to be a
 trivial task, however the committers have to (a) fix it up if it is
 formatted badly (b) test it in a tinderbox and only then (c) commit
 it. This takes more time than just cvs commit. A lot of work has
 been done in recent years to make this process faster and I'm sure
 more could be done - but a lot of people don't realize how much work
 goes on behind the scenes

I think it is important to clean up ports because otherwise there is a
big burden on the FreeBSD organization, and also on each individual
user, when they upgrade their machine. I think on the other hand that
some ports are especially important, and don't always receive the care
they need, for reasons that i don't know. I have taken some time to look
at some ports in the lang category that are unmaintained or are
severely old.

I have noted that eiffel 13a is deprecated and has an expiration date.
Indeed i have found old copies of this software, and it seems that the
people doing it have disappeared someway. However at least one is now
listed as contributor to gobo-eiffel
http://sourceforge.net/projects/gobo-eiffel/
which is not a freebsd port.
There is the official eiffelstudio port, which has a valid download
link but no maintainer, and smarteiffel which is maintained.

I am more interested by the cmucl lisp compiler. In the ports we can
find cmucl 19f which is maintained by Martin Cracauer, but is already
quite old, and there is no maintainer for cmucl-extras. In fact the
cmucl project does the work of providing precompiled stuff for various
architectures (the lisp compiler is written in lisp so can only be
compiled by a recent enough precompiled compiler, anyways) and in
particular one finds freebsd binaries here:
http://common-lisp.net/project/cmucl/downloads/snapshots/2011/04/
These binaries are compiled on freebsd_8.1, and there are two versions
the unicode version and the non-unicode version, plus the cmucl-extra
(localized messages, an adapted editor, called hemlock plus some
goodies). 

So my point is, how is it that cmucl freebsd version finds care and love
in the cmucl community, but that this does not extend to an adequate 
place in the freebsd ports? 

The other big lisp from the same ancestry, sbcl is better maintained,
since the last version is 1.0.47, while freebsd is at 1.0.43, that is 6
months old. These lisps are *very* important for their use in the CAS
software maxima, which is actively developed and used by a lot of people
(in ancient times the traditional compiler for maxima was gcl but it
seems it doesn't work well nowadays, and clisp is far too slow). But
they are also important for many other uses, and at this point i see an
important omission in the ports system. The standard way nowadys to
install lisp packages is to use quicklisp
http://www.quicklisp.org/beta/
and after that hundreds of applications can be installed automatically
in the same way as cpan does for perl modules. Instead there are a
select few lisp applications in the ports, which have a clisp and a sbcl
slave port. This is strange.


-- 

Michel TALON

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


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

2011-03-26 Thread Michel Talon
 This can still be discussed but I don't really like the idea that
 users may alter packages an installation/extraction time, that would
 lead to lots of potential buggy installation and report.
 If user aren't happy with the packaging, they can poke the maintainer,
 send PR, patch etc.

The whole point of *binary* packages is that people don't mess 
changing options, changing what is installed, etc. so that port
maintainers know exactly what people have on their machine, and be
able to test it. This is a prerequisite for a system which is not a
complete mess. Those you like to change things are on their own.


-- 

Michel TALON

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


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

2011-03-25 Thread Michel Talon
Sorry i have just seen a table for dependencies in pkg_repo.c

CREATE TABLE deps (
origin TEXT,
name TEXT,
version TEXT,
package_id INTEGER REFERENCES packages(id),
PRIMARY KEY (package_id, origin)

So this seems fine.

-- 

Michel TALON

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


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

2011-03-25 Thread Michel Talon

 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.

Fantastic! it has been necessary since a looong time.

 - the register command can analyse elf files when registering a new port
   to discover forgotten dependencies if necessary. (done in alpha using
 libelf)

Fantastic! the dependencies as mentioned directly in Makefiles by
ports maintainers were not always perfect.

 In term of technology we decided to use a sqlite3 database, and to
  prevent potential trolling, sqlite3 is used in it's amalgamation form
  which means it is incorporated in the code sources (as recommanded by
  sqlite developpers like a statically linked library) on build we only
  activate the features we need in sqlite.

Fantastic! at least using something fast and tested instead of some
half-brewed solutions. I have just taken a look at the table packages,
it seems that it does not contain dependency information, but you can
discover it through analyze_elf, where do you store it?

This project is the thing i had dreamed about.


-- 

Michel TALON

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


Re: Deprecation campaign

2011-03-17 Thread Michel Talon
On Thu, Mar 17, 2011 at 07:33:01AM +0300, Ruslan Mahmatkhanov wrote:
 17.03.2011 02:33, Michel Talon ??:
 Hello,
 
 i noted that ucpp is deprecated because it cannot be fetched
 from original site. This is an alternate c preprocessor
 supposed to be better than the gnu one, written by Thomas
 Pornin. I happen to know the guy (*), so i searched if
 the soft had been moved, and indeed it can be found here:
 http://code.google.com/p/ucpp/
 I hope you may reconsider your decision.
 
 With my best regards
 
 (*) i think he now runs a crypto firm in the Boston area.
 
 I've tried to adopt the port to new distfile..
 It builds but doesn't produce ucpp binary.
 Maybe you or anybody can look what's wrong.
 
 -- 
 Regards,
 Ruslan

I have looked at the question.

First point is that the preprocessor is intended to be run as part of
other tools so does not produce a stand alone preprocessor. However
one may compile it to produce a stand alone executable.

Then one encounters a problem, it does not compile because there are
macros STD_MACROS and STD_ASSERT which are undefined. I have checked the
problem is the same under Linux, maybe this works under Solaris or
whatever. I have replaced that by /usr/include, but assertions don't
work, so i have disabled them. Anyways with the following patch,
one gets a preprocessor ucpp that seems to work OK.


niobe% diff Makefile.new Makefile
81c81
 STAND_ALONE = -DSTAND_ALONE
---
 #STAND_ALONE = -DSTAND_ALONE
niobe% diff cpp.c.new cpp.c 
68,69c68,69
 static char *system_macros_def[] = { /usr/include, 0 };
 static char *system_assertions_def[] = { , 0 }; 
---
 static char *system_macros_def[] = { STD_MACROS, 0 };
 static char *system_assertions_def[] = { STD_ASSERT, 0 };
2367c2367
   int system_macros = 0, standard_assertions = 0;
---
   int system_macros = 0, standard_assertions = 1;

The *.new files are the files i have modified.

-- 

Michel TALON

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


Re: Deprecation campaign

2011-03-16 Thread Michel Talon
Hello, 

i noted that ucpp is deprecated because it cannot be fetched
from original site. This is an alternate c preprocessor
supposed to be better than the gnu one, written by Thomas
Pornin. I happen to know the guy (*), so i searched if
the soft had been moved, and indeed it can be found here:
http://code.google.com/p/ucpp/
I hope you may reconsider your decision.

With my best regards

(*) i think he now runs a crypto firm in the Boston area.

-- 

Michel TALON

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


Re: deprecated ports

2011-03-16 Thread Michel Talon
Ruslan Mahmatkhanov wrote:

I also saw that graphics/gimp-greycstoration is finally deprecated.
Baptiste you may want to look at ports/154596 to close it.

In fact this is an interesting plugin which is superseded by
gmic from the same author David Tschumperlé

http://gmic.sourceforge.net/gimp.shtml

and which is in the ports. So this deprecation is fine.


-- 

Michel TALON

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


Re: Superfluous dependencies

2011-03-12 Thread Michel Talon
Mark Linimon said:

 On Sat, Mar 12, 2011 at 02:12:34PM -0800, Charlie Kester wrote:
  I'm not aware of any tool that will display a similar dependency tree
  for a port *before* it is installed.
 
 http://portsmon.freebsd.org/portdependencytree.py
 
 Note: it's running a live set of queries on the tree, so it's slow.

Wonderful tool! Using it i have found a nice illustration of the
title of the thread by looking at the dependencies generated by the
ports math/maxima.

If you run it you will find *tons* of dependecies. However, being a
regular user of maxima, that i compile myself on my machine using cmucl
i know that maxima has exactly *one* dependency, a lisp system.
Taking the example of cmucl one needs only a previous binary version of
cmucl, because it is written in lisp, and the base C compiler to produce 
the executable lisp. It should not be much different with sbcl, except
if one foolishly adjoins unnecessary optional software. When having
a lisp, one can in fact compile maxima  without even using make, but
make simplifies the job. It is not *necessary* to have optional
gnuplot (which one may or may not desire), and even less to have (*)
graphical front ends like xmaxima or  wxmaxima. The teTeX dependency is
completely superfluous. 

I mention this example because it is characteristic of a tendency of
many FreeBSD ports to add a kitchen sink of superfluous dependencies
which render upgrades and so on complicated.

(*) most serious users of CAS software i know (maple, etc.) always 
type their code in a window using a standard editor, and copy-paste it
in another window running maple, maxima, etc. Using the GUI toolkits
is almost always a considerable loss of time.

-- 

Michel TALON

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


Re: FreeBSD needs fresh Blood!

2011-03-08 Thread Michel Talon
Warren Block writes:
 It continues to amaze me how much you have in there.  Oh, and my times 
 earlier were probably user time rather than wall time, for which I'll 
 shiftily blame the difference between csh's time builtin and 
 /usr/bin/time.  Redoing that:
 
 portmaster -L | filterfu:  43.6
 pkg_version -vl'':30.5
 portversion -vl'': 3.6
 portmaster -L --index-only: 2.5

I don't have the same experience by far:
on a jail i have:

.
=== 68 total installed ports
=== 61 have new versions available
portmaster -L --index-only  0.76s user 1.65s system 6% cpu 38.871 total

So it takes 38s on a *very small* installation. My experience is that
all FreeBSD ports tools are incredibly slow, be it portupgrade,
portmaster, even the basic tools like pkg_version. Maybe it would help
to recognize that such observations are perhaps not unrelated to the
original poster comments.


-- 

Michel TALON

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


Re: Find a corrupt port

2011-02-27 Thread Michel Talon

Doug Barton wrote:


 The problem with this is that dependencies are actually recorded as a 
 pair. For example:
 
 @pkgdep pkg-config-0.25_1
 @comment DEPORIGIN:devel/pkg-config
 
 Someone else already was kind enough to mention 'portmaster 
 --check-depends' which will prompt you to do the right thing and/or 
 notify you about ports that you need to reinstall.

Or if you like something more automated, faster, and giving more
information, you can run:
http://www.lpthe.jussieu.fr/~talon/check_pkg.py




-- 

Michel TALON

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


Re: Debian GNU/kFreeBSD

2011-02-12 Thread Michel Talon
Michal Varga wrote:
 On Sat, 2011-02-12 at 23:33 +0330, Bahman Kahinpour wrote:
  Does anyone think that having an optional APT system somewhere like in
  the Ports Collection or ...
 
 You already know where the ... is, it's called Debian GNU/kFreeBSD. 
 
 I have been told that both its users are perfectly happy with apt-system
 and everything else that accompanies it and then for the rest, there's
 this other thing called FreeBSD.

This other thing that you mention has two components, the kernel and
basic  utilities, managed by very competent people, and the ports 
which covers more than 20 000 various software and gives flesh to the
system. One may very well be reasonably happy with the first component
(hardware support is not always first class, notably for laptops) and
be disappointed by the second component. It may be that Debian/kFreeBSD
will succeed in associating a good kernel to a good userland, depending
on the care offered by the Debian people to this project. I don't think
that grafting apt on the ports system would work as well as in Debian.


-- 

Michel TALON

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


Re: i keep *trying* to move from portupgrade to portmaster

2010-08-06 Thread Michel Talon
Doug Barton wrote:


 On 08/06/2010 15:03, Adam Vande More wrote:
 
  While your in the mood for for taking portmaster suggestions,
 
 I am always in the mood for taking suggestions. :)
 
  I think an
  option to backup all currently installed packages would be useful. 
 
 for pkg in /var/db/pkg/* ; do
   pkg_create -b $pkg
 done
 
  I
  have a python script that does this for me, but it would be easy
  enough
  to use sh as well.  I do this because there have been too many times
  something has broken during a port upgrade run

I don't think pkg_create preserves the config files user edited, which
is the precious stuff, but it preserves a lot of useless stuff.
The following python script by Cyrille Szymanski may be more useful:
http://www.lpthe.jussieu.fr/~talon/pkg_save.py
It keeps the config files and the shared libraries.


-- 

Michel TALON

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


Re: Portmaster with package support ready for beta testing

2009-11-11 Thread Michel Talon
On Tue, Nov 10, 2009 at 11:46:17PM +0100, Dominic Fandrey wrote:
 If you want to work without a ports tree use pkg_upgrade
 (sysutils/bsdadminscripts), it only requires an INDEX file.
 
 The next version will also require the MOVED file (as is now
 provided by Pointyhead).

Very nice, your program is in the same spirit as my own:
http://www.lpthe.jussieu.fr/~talon/pkgupgrade
except written in shell, which is quite a feat!
Since python is easier to manage, pkgupgrade follows MOVED
and tries to be fast.

-- 

Michel TALON

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


Re: Portmaster with package support ready for beta testing

2009-11-09 Thread Michel Talon
On Mon, Nov 09, 2009 at 12:05:45PM +0100, Miroslav Lachman wrote:
 
 Does it mean that one needs ports tree or provide custom INDEX in case 
 of custom packages with non default options (different dependencies) to 
 compute order od dependencies?
 (AFAIK plain pkg_add works without ports tree and INDEX, that's why I am 
 asking)

This is because a package contains a list of requirements. However
problems may appear, for example if requirements have changed between
the installation of the ports you have on your machine and the moment 
when the package has been compiled. Moreover some ports compile
different stuff according to what is present on your machine. The
configure script may autodetect stuff like gnome, etc. and automatically
compile for example a gnome version of the program.
For all these reasons there may be divergences between the dependencies
as seen on your machine and the ones recorded in the package which has
been compiled elsewhere.

 
 It is related to my idea of extending packages with more metadata, for 
 example OS version + arch, used build options (WITH_ / WITHOUT_ etc.) so 
 one can easily determine how this package was built. But it seems as 
 not so easy task to me, as I don't know how to get all the options (from 
 /etc/make.conf, environment variables, /var/db/ports, commandline...) 
 and record them to file in useful way.
 It can be useful in case where I have some backup of packages from many 
 machines, but have not the original environment, where packages were 
 built etc.

For the above reasons i think that using precompiled packages should be
restricted to people who don't mess with the standard settings. When you
install some Debian packages you take them as is, and things generally
work because mostly everybody use the same packages which are well
tested and coherent. If, on your machine, you want to use a specially
configured program, you download the sources and compile it. But you
take care yourself of the upgrades of this program. I think that a
similar behaviour should be viable on FreeBSD. If you extensively
modify the configuration of a large number of ports, you cannot expect 
a packages-based upgrade to work. In this case the only reasonable way
is to upgrade from source.


 
 Miroslav Lachman

-- 

Michel TALON

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


Re: Portmaster with package support ready for beta testing

2009-11-08 Thread Michel Talon
Miroslav Lachman wrote:
I take a quick look at the code and I have one question. Can you explain 
way --no-deps and --force are used for pkg_add?


I can only venture an explanation. Once you have computed a good order
for upgrading via packages, you cannot accept that pkg_add ruins your
computation by doing things on its own. In principle you have a
global view of the problem, which is better than the local view embedded
in each package. Hence forcing pkg_add is the only sane way.

-- 

Michel TALON

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


Re: Lighttpd: (mod_fastcgi.c.1742) connect failed

2009-09-05 Thread Michel Talon
O. Hartmann wrote:

 2009-09-03 19:47:49: (mod_fastcgi.c.1742) connect failed: Connection 
 refused on unix:/tmp/lighttpd-fastcgi-php.socket-7

Have you checked the permissions? I seem to remember i had the same
problem once with lighttpd and it was because permissions of the
socket under /tmp. Now my server works OK since ages. I had to
take provisions for permissions in the fastcgi python responder. In my case
the relevant bits are when daemonizing the responder:
pid = os.fork()
if pid  0 :# In first child
import time
time.sleep(3)
while not os.access(socket, os.F_OK) :
time.sleep(1)
# the socket created by the child is made accessible to the web
# server
os.chown(socket, wwwuid, wwwgid)
os.chmod(socket, 0700)
sys.exit(0) # Exit first child


While still being root i adjust the permissions of the socket. Then 
i change effective userid:

.
# And finally the routine which starts the fcgi responder, as user www
os.seteuid(wwwuid)
WSGIServer(request_handler, **wsgi_opts).run()


The complete script you can get at:
http://www.lpthe.jussieu.fr/~talon/show_index.fcgi
It is a simpler server than for example django if you want to understand
fastcgi. By the way the aim is to display  the FreeBSD ports trough
a fastcgi responder.


-- 

Michel TALON

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


Re: [HEADUP] FreeBSD Gecko's TODO and plan for future

2009-08-25 Thread Michel Talon
Andrew Reilly wrote:

 I've stopped using portupgrade in favour of portmaster, but I
 don't see a ready equivalent to this with portmaster, hence my
 dumb script.  In particular, I don't think that portmaster can
 combine the -r and -x flags (depend and exclude), and when I've
 done -f -r in combination before, then it seems to build the
 entire transitive closure of dependencies, rather than just the
 immediate ones.
 
 Hence my question about a tool to manipulate the dependency
 graph as a graph...

You can always play with 
http://www.lpthe.jussieu.fr/~talon/pkgupgrade
which, i think, is a lot easier to hack than portupgrade, and includes,
like portupgrade, a dependency graph computation. Beware that there is 
not a unique way to compute the upgrade order, so you cannot be sure to
get an optimal way. In a few words, the problem is to get a total order
on a set of ports compatible with a partial order given by dependency.
There is always such a total order, but it is not unique.


-- 

Michel TALON

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


Re: [Call For Testing] VirtualBox for FreeBSD! take2

2009-05-19 Thread Michel Talon

Martin Wilke  wrote:


 Next run,
 
 We updated the port to 2.2.2r19801.


Works for me fine on a FreeBSD-7.1 machine running i386. I am running
just now a FreeBSD-8 snapshot. But the NetBSD-5 iso crashed the virtual
machine.

Nice work
Thanks.

-- 

Michel TALON

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


Re: mtools vs X11 (Re: FreeBSD Port: syslinux-3.72)

2009-03-20 Thread Michel Talon
Steven Kreuzer wrote:
 Personally, I think it makes more sense for mtools to be  
 the full and complete representation
 of the actual program.

Personnally i think that such opinion considerably harms the ports
system, by transforming some ports (fortunately not many) into
a kitchen sink of dependencies, which cause considerable trouble for
the unhappy users. Adding X, which is a very big dependency for a
port like mtools, where nobody in his right mind would think or even
know there is a guy, is like adding the whole TeTex for getting the
symbol font (i have seen that) or other similar wise decisions. If
a little judgement was applied in such cases, it would enhance 
greatly the usefulness of the ports system.

-- 

Michel TALON

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


Re: mtools vs X11 (Re: FreeBSD Port: syslinux-3.72)

2009-03-20 Thread Michel Talon
Steven Kreuzer wrote:

 Can we consider people who use the CLI an advanced user? If so, the  
 expectation that they will be able to build a port with -DWITHOUT_X11  
 is not unreasonable.
 People who are more likely to use the GUI are the ones who will not be  
 aware of the WITHOUT_X11 knob.

And the end user who uses prepackaged packages will get mtools with
a totally useless GUI. I have hard time beleiving you are not trolling
with such theories.


-- 

Michel TALON

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


Re: installed ports dependency tree?

2009-02-05 Thread Michel Talon
Doug Barton wrote:


 Robert Huff wrote:
  Suppose I have installed ports A..Z.  Some of these are
  standakone; some depend on others on the list; others depend on
  installed ports not on the list.
  Is there a port that will produce a unified and ordered
  dependency list, such that upgrading/reinstalling in that order will
  avoid multiple rebuilds? 
 
 Not sure what you mean about avoiding multiple rebuilds, unless you're
 talking about generating a list and installing all the ports on that
 list one at a time.

The installed ports form a dependency tree which is hopefully a 
direct acyclic graph (DAG). When there are cycles it is supposed to be a
bug in the system. For a DAG you can always order the elements in such a
way that this total order is compatible with the partial order given by
the DAG. I don't remember if portmaster does that, but i am sure that
portupgrade does it, an so does my pkgupgrade. Using such an order (it
is not unique) one can guarantee that (barring bugs in the ports system)
one can remove packages without breaking other packages or install
without doing multiple rebuilds. 



-- 

Michel TALON

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


Re: Scilab 5.0

2009-01-18 Thread Michel Talon
bf wrote:
 Yes, I hope to soon, but I am busy at the moment.  I'd be interested
 in hearing whether users of the existing scilab 4.x port would like the
 new version, which is Java-based, to replace the old port -- or just be
 added in addition to it.

If the new Scilab Java interface is as bad as the new Maple Java
interface, maybe it is wise to keep the old Scilab 4.x in the
ports tree ...


-- 

Michel TALON

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


Re: Scilab 5.0

2009-01-18 Thread Michel Talon
To add to :
 If the new Scilab Java interface is as bad as the new Maple Java..

I have just tried the new scilab under Ubuntu, the help screen
is next to unreadable, due to far too small fonts, and no 
configuration possibility, worse the plots core dump. So
keeping scilab-4 in the ports seems useful. Otherwise the main window
seems fine.

-- 

Michel TALON

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


Re: numerous gcc installations

2009-01-11 Thread Michel Talon
Nikolaj Thygesen wrote:
Could anyone please explain to me whether it's really required to 
have two extra versions of gcc installed. I Recently upgraded 
py25-numpy, which in turn pulled in gcc-4.2.5_20081126 as a 
dependency. A few days ago  blas refused to compile because:

This occurred to me recently. Fortunately you can find precompiled
blas, scipy and numpy (pkg_add -r py-numpy works). But i was out of luck
with matplotlib, which required pkg_adding gcc-42 and then compiling
tons of stuff. One of them (agg, i think, requires DISPLAY to be set
and accessible in the configure script !!!) hence breaks the build for
matplotlib.


-- 

Michel TALON

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


DragonFlyBSD mail agent

2009-01-08 Thread Michel Talon
Hello,

would it not be interesting to have the DragonFlyBSD mail agent in
FreeBSD? It is a very simple mail agent, like ssmtp, but with some more
features: it can either deliver mail locally for local users or send all
other mail to a smarthost, and reads the aliases file. Hence it fulfills
the needs of the person who wants a small mail agent for receiving
periodic root mail, and wants to send the occasional without too much
fuss. It is much simpler than sendmail, postfix or exim.

For simplicity i have a tarball here:
http://www.lpthe.jussieu.fr/~talon/dma.tgz
it compiles out of the box, and it is easy to figure out how to use it.


-- 

Michel TALON

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


Re: DragonFlyBSD mail agent

2009-01-08 Thread Michel Talon
Janky Jay, III wrote:

 By default, FreeBSD's Sendmail that comes in base already delivers mail
 to local users and reads the aliases file also. It supports configuring
 a smarthost as well. Unless there are some highly desired features in
 the DragonFlyBSD mail agent, I seriously doubt there will be any
 migration to it from Sendmail in the near future.

I was not speaking of replacing sendmail in the base system, only on
offering this mail agent in the *ports*, this is why i posted in
freebsd-ports. I should have been clearer.

This mail agent doesn't offer anything compelling compared to sendmail,
only it is much smaller and presumably more secure. For example if you
want a mail agent in a jail, you can envision to use this one instead of 
sendmail because it is much lighter. Yes i know ssmtpd could do the
same, more or less but this one has a little more flexibility without
falling in the complexity of the big ones.


-- 

Michel TALON

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


Re: DragonFlyBSD mail agent

2009-01-08 Thread Michel Talon
Le jeudi 08 janvier 2009, vous avez écrit :
 On Thu, Jan 08, 2009 at 05:48:10PM +0100, Michel Talon wrote:
  This mail agent doesn't offer anything compelling compared to sendmail,
  only it is much smaller and presumably more secure.

 I have previously seen it advocated for base as an alternative for
 systems that e.g. only need to send cronmail.

 mcl

I am using DragonFly mail agent on some jails since a few months and it works 
OK. Hence dma.tgz compiles out of the box and works as advertised on FreeBSD.

I can give some information on the configuration: this shows the simplicity of
the configuration file.

jail1% cat /etc/dma/dma.conf

# $DragonFly: src/etc/dma/dma.conf,v 1.2 2008-02-04 10:11:41 matthias Exp $
#
# Your smarthost (also called relayhost).  Leave blank if you don't want
# smarthost support.  Here i take the base host as smarthost
SMARTHOST niobe

# Use this SMTP port.  Most users will be fine with the default (25)
PORT 25

# Path to your alias file.  Note it reads aliases, not aliases.db. Same file  
# as sendmail aliases.
ALIASES /etc/mail/aliases

# Path to your spooldir.  Just stay with the default.
SPOOLDIR /var/spool/dma

# Path to your virtual user file.  Just stay with the default.
VIRTPATH /etc/dma/virtusertable

To deliver local mail it seems that dma needs to be suid root:
jail1% ls -l /usr/libexec/sendmail/dma
-r-sr-sr-x  1 root  mail  42904 Aug 20 00:45 /usr/libexec/sendmail/dma

The spool directory is
drwxrwxr-x  2 root   mail2 Jan  8 03:05 dma





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


Re: Latex port

2008-12-26 Thread Michel Talon
Xihong Yin wrote:

 I installed teTeX from port, but I found that I have no 'table'
 environment. Can anybody tell me what's wrong?

Works perfectly fine for me:

Compiling the following under teTeX and FreeBSD-7 works and gives the
expected result:

\documentclass{article}
\begin{document}


\begin{table}[ht]
\centerline{
   \begin{tabular}{|l|c|c|}
   \hline
  colonne 1  colonne 2  colonne 3 \\
   \hline
  1.1  1.2  1.3 \\
  2.1  2.2  2.3 \\
   \hline
   \end{tabular}
}
   \caption{\label{mylabel} Title}
\end{table}
\end{document}


niobe% latex toto
This is pdfeTeX, Version 3.141592-1.21a-2.2 (Web2C 7.5.4)
entering extended mode
(./toto.tex
LaTeX2e 2003/12/01
Babel v3.8d and hyphenation patterns for american, french, german,
ngerman, b
ahasa, basque, bulgarian, catalan, croatian, czech, danish, dutch,
esperanto, e
stonian, finnish, greek, icelandic, irish, italian, latin, magyar,
norsk, polis
h, portuges, romanian, russian, serbian, slovak, slovene, spanish,
swedish, tur
kish, ukrainian, nohyphenation, loaded.
(/usr/local/share/texmf-dist/tex/latex/base/article.cls
Document Class: article 2004/02/16 v1.4f Standard LaTeX document class
(/usr/local/share/texmf-dist/tex/latex/base/size10.clo)) (./toto.aux)
[1]
(./toto.aux) )
Output written on toto.dvi (1 page, 624 bytes).
Transcript written on toto.log.


niobe% ls /var/db/pkg|grep teTeX
teTeX-3.0_1/
teTeX-base-3.0_6/
teTeX-texmf-3.0_3/


-- 

Michel TALON

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


Re: TeXLive

2008-12-24 Thread Michel Talon
Romain Tartière wrote:

 Well, I don't think of importing TeXLive into the FreeBSD ports tree as
 a replacement of teTeX (sorry if that was unclear by what I meant by
 drop-in replacement).  I was just thinking about having both in the
 ports tree, leaving existing dependencies untouched so that ports that
 used to depend on teTeX still depend on it... TeXLive would only be
 installed if the user explicitly want TeXLive instead of teTeX.

I concur with that, as a TeX user since many years. For me teTeX is
already overbloated as far as possible, particularly when some 
unconscious maintainer adds dependencies like cm-super which are
perfectly non necessary, please don't impose on us abominations like 
TeXLive, leave that optional. 

-- 

Michel TALON

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


Re: print/cm-super size mismatch

2008-12-16 Thread Michel Talon
Stephen Montgomery-Smith wrote:
 I had this problem yesterday, when it was fixed last week.  My guess is 
 that that the bug is not still there but that it was renewed.  I am 
 thinking that distfile was updated yet again.

By the way, does someone knows why cm-super is listed as a dependency of 
print/teTeX while it is obviously *not* necessary to run teTeX and is a
very big download? 
Notably since there exist other conversions of the Computer Modern fonts 
to Type1 requiring infinitely less space than cm-super, for example:
http://www.ctan.org/tex-archive/fonts/ps-type1/cm-lgc/



-- 

Michel TALON

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


Re: multimedia/xvid

2008-10-11 Thread Michel Talon
On Fri, Oct 10, 2008 at 10:11:35PM -0300, Carlos A. M. dos Santos wrote:
 
 Standard questions:
 
 1. O which architectures did you test this?

On a P4 HTT. I can test that on an Athlon T Bird and a Core 2 Duo 
in 386 mode, but i don't have access to an amd64 machine running
FreeBSD, and of course other architectures. The assembly files in
question contain MMX,SSE and SSE2 instructions so apply only to
such processors.

 2. Did you send a PR?

No

 3. The port currently has no maintainer. Would you like to take it? :-)

I have no problem taking it, on the other hand the required modification
is minimal. I have checked on the xvid site that there is no more recent
version.

-- 

Michel TALON

___
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: multimedia/xvid

2008-10-11 Thread Michel Talon
On Sun, Oct 12, 2008 at 12:42:08AM +1100, Sean Winn wrote:
 
 Another option is to just fix the configure script so it doesn't break on
 nasm  1 (it's failing on the patch level check)
 
 The attached file dropped in ports/multimedia/xvid/files/ seems to do the
 trick, though I don't use xvid so I can't exactly test that the new version
 assembles things properly.
 
 Something done to configure.in should be sent upstream really.

Yes, fixing the configure script should be done upstream, but it
seems that the xvid project is somewhat asleep, so better use
yasm in the Makefile on which there is control. As you note below,
the problem comes because the configure script tries to use the -r
option which yasm has but not nasm, so the xvid people had really
yasm in view when doing their work.


 --- configure.orig2008-10-11 13:40:34.0 +1100
 +++ configure 2008-10-11 13:43:14.0 +1100
 @@ -4016,7 +4016,12 @@
 if test $ac_nasm = yes ; then
  echo $as_me:$LINENO: checking 
 for nasm patch version 5
  echo $ECHO_N checking for nasm patch version... $ECHO_C 6
 -   nasm_patch=`$nasm_prog -r | cut -d '.' -f 3 | cut -d ' ' -f 1`
 +nasm_version=`$nasm_prog -v | cut -d '.' -f 1 | cut -d ' ' -f3`
 +if test -n $nasm_version -a $nasm_version -gt 1; then
 + nasm_patch=$minimum_nasm_patch_version
 +else
 + nasm_patch=`$nasm_prog -r | cut -d '.' -f 3 | cut -d ' ' -f 1`
 +fi
 if test -z $nasm_patch ; then
nasm_patch=-1
 fi

By the way, the performance improvement obtained by using SSE
instructions in the assembly files is astounding.  I could not beleive
what i was seeing, basically an x 4 improvement, that is the code
perfectly parallelizes the computations on the 128 bits registers.
This is a good illustration of the fact that compilers are not always 
as smart as people say, and assembly code can crush C code. 


-- 

Michel TALON

___
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: Found CONFLICTS: ...

2008-10-06 Thread Michel Talon
On Mon, Oct 06, 2008 at 02:17:43AM +0400, Boris Samorodov wrote:
 Michel Talon [EMAIL PROTECTED] writes:
 
  I think that CONFLICTS is a cure with worse effects than
  the disease.
 
 Well, then you may cut off this cure by defining DISABLE_CONFLICTS.

This is indeed the solution i came to in:
http://www.lpthe.jussieu.fr/~talon/freebsdports.html


-- 

Michel TALON

___
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: Found CONFLICTS: ...

2008-10-05 Thread Michel Talon
Jan Henrik Sylvester wrote:

 Should all CONFLICTS be documented?

I think CONFLICTS should be treated by ignoring them completely.
They cause no end of troubles in Debian, for very little if any
usefulness.

What is the problem if you install texi2dvi one way or another?


-- 

Michel TALON

___
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: Found CONFLICTS: ...

2008-10-05 Thread Michel Talon
On Sun, Oct 05, 2008 at 04:24:46PM -0500, Scot Hetzel wrote:
 On Sun, Oct 5, 2008 at 3:25 PM, Michel Talon [EMAIL PROTECTED] wrote:
  Jan Henrik Sylvester wrote:
 
  Should all CONFLICTS be documented?
 
  I think CONFLICTS should be treated by ignoring them completely.
  They cause no end of troubles in Debian, for very little if any
  usefulness.
 
  What is the problem if you install texi2dvi one way or another?
 
 
 There are several problems:
 
 1. These two texi2dvi programs might have a different set of
 arguments, that other programs rely on.
 
 2. When upgrading the ports, which port is the one that installed
 texi2dvi, as the last port upgraded has it's texi2dvi installed.
 
 3. When removing either teTeX-base-3.0_14 or texinfo-4.11, it has the
 unwanted side effect of also removing /usr/local/bin/texi2dvi from the
 system, which may affect the operation of one of the other programs
 that relies on texi2dvi.
 
 These same problems also applies to libraries, config files, man
 pages, and other documentation.
 
 Scot

Of course, but all these problems are far less annoying than the
problems coming from overzealous CONFLICTS notifications, which can
completely ruin your mental health. After all, if some program goes
astray after having removed some apparently unrelated port, the simple
solution is to reinstall this program, and its dependencies. Problem is
almost a non problem. Of course the good solution is that ports
developers try to avoid conflicts by choosing appropriate names, but in
general this would require considerable work, or install everything in
its own directory and use symlinks in public directories
(/usr/local/bin,etc.) like Debian does, which promptly creates a
terrible mess. I think that CONFLICTS is a cure with worse effects than
the disease.


-- 

Michel TALON

___
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: My interactive version of pkg_add - finished!

2008-10-04 Thread Michel Talon
Marin Atanasov wrote:

 Should I add something else to it or modify something?

You should remove a lot, because many implicit rules are already defined 
in /usr/share/mk/sys.mk which is sourced by make automatically. See for
example 
/usr/src/usr.sbin/pkg_install/add/Makefile
to discover how little is needed.

-- 

Michel TALON

___
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: My interactive version of pkg_add

2008-10-02 Thread Michel Talon
Marcin Wisnicki wrote:

 Unless I'm missing something there needs to be a MOVED file or ideally
 something like it that has pkgnames (with versions) for a binary
 package update tool to work.

First, congratulations to Marin Atanasov for having completed his
program! As far as i understand, Marin's goal was simpler that an
upgrade tool for binary packages, it was simply an install tool,
allowing to choose interactively on various repositories. I think this
goal is fulfilled and is useful. 

For upgrading, the situation is vastly more complicated, indeed one
needs to read MOVED and use information here, in particular follow the
name changes of ports. For example you may have a port whose proper
upgrade has a different name, etc. or ports have disappeared, etc.
I am not even sure that a completely bullet proof system can be written
within the limits of the present FreeBSD ports system. 

I am quite sure that one of the keys of Marcin's success is having
limited his aims. Similarly the excellent portmaster tool for upgrading
owes its success to strict limitation to upgrade from source, using the
available preexisting pkg_* tools - plus a lot of polishing.



-- 

Michel TALON

___
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: My interactive version of pkg_add

2008-09-27 Thread Michel Talon
Marin Atanasov wrote:

 So what do you think - is it worth improving upon it or it's a waste of
 time?
 Thanks for any suggestions.

I think it is worth improving and certainly not a waste of time.
Each work which allows to use precompiled packages more efficiently
in FreeBSD is very useful, in my opinion. While compiling ports
is very fine on a server, where only a small number of ports are
installed - and then the tool portmaster does that really
wonderfully, looking at the other extreme, a desktop with around
a thousand installed ports is better managed through precompiled
packages. And, sorry, but portupgrade is not the solution to do that,
either with the -P or -PP option.

I can only concur with the suggestion you mention, exploring ftp sites
to discover what is available here. How to do that efficiently is
harder. Apparently official FreeBSD ftp sites have an INDEX of
available packages. I hope it is reliable. Then i suggest to download it
and work from that.

Best regards

-- 

Michel TALON

___
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to [EMAIL PROTECTED]


Exploring the FreeBSD ports tree

2008-09-09 Thread Michel Talon
Hello,

while playing with fastcgi stuff, i have updated my tool to explore the
FreeBSD ports tree. It is now a fastcgi responder which can answer
questions behind  a web server such as apache or lighttpd. It can be
found here:
http://www.lpthe.jussieu.fr/~talon/show_index.fcgi
The needed configuration for lighttpd is explained in the comments at
the beginning, this is basically the same as for Django. So one needs to
run the python script show_index.fcgi as root, it creates a socket in
/tmp, daemonizes, and changes its ownership to www. It then communicates
with the web server through this socket. To browse the ports tree, just
point the browser at /showindex/ on the given server. A reasonable
number of queries per second is achievable through this setup.


-- 

Michel TALON

___
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: firefox 3 causing xorg to suck up all available CPU

2008-08-01 Thread Michel Talon
Alex Dupre wrote:

 gamin is completely broken and can enters infinite loops. Switch to
 fam.

I would say exactly the opposite. I had enormous problems when KDE was
using fam, particularly with NFS mounted home. In fact fam sucked all
NFS server bandwith. This problem was completely solved by the switch to
gamin. For me gamin works perfectly OK.


By the way i have seen Firefox3 sucking all the X processing power (to
the point the display was almost completely frozen), return to the
normal being obtained when killing firefox. I have seen that only on
some specific web pages, but it was completely reproducible on these web
pages.


-- 

Michel TALON

___
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: Call for comments - pkg_trans

2008-07-31 Thread Michel Talon
Ivan Voras wrote:


 I apologize in advance if what I'm trying to do seems stupid or it
 has=20
 already existed since the Dawn of Time (i.e. when McKusick was in=20
 diapers) but I'd like your comments on this idea:
 
 http://wiki.freebsd.org/IvanVoras/PkgTransProposal
 
 I can write the pkg_trans utility and modify the C utilities
 (pkg_add,=20
 pkg_delete, if they're sane) but I can't do makefiles and ruby, so if=20
 this is to work, I'll need some help :)

I find this idea fantastic! This is much needed in the FreeBSD ports
system. In fact without such a mechanism, it is difficult to have a
reasonably good upgrade system. For example suppose you install KDE,
and as a dependency some software is installed. In a new version of KDE
this software has been abandoned and replaced by more modern stuff
(example fam - gamin). If both still exist in the ports system,
without your mechanism, both will be upgraded regularly. Keeping state
on things which have been installed as dependencies and thus can be
removed if the dependency is no more present is necessary. Of course it
is also a convenience for the end user.

As to the necessary modifications in portupgrade, perhaps not a lot
if the basic tools (pkg_add, etc.) work correctly by themselves, since
portupgrade mainly calls these tools. But of course, injecting the above
state information in pkgdb.db would perhaps be useful.





-- 

Michel TALON

___
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: Call for comments - pkg_trans

2008-07-31 Thread Michel Talon
Doug Barton wrote:

 BTW, I thought of another problem scenario. The user installs port M, 
 and it brings dependencies D1, D2, and D3. Then the user installs port 
 N which also has port D2 as a dependency.

Then D2 becomes available for deletion only after M and N have been
deleted or no more require it. I don't see a big problem here.
Perhaps it is however a problem for the notion of transaction, since
a group of ports flagged for deletion by a transaction cannot be
entirely removed after some time when part of it is needed by other 
ports. This means one needs to keep a very complete and detailed data
basis of the operations, of course. By the way, on the course of time,
ports belonging on a transaction are upgraded, may change name
(according to the MOVED file) so one also have to continually update
this information in the data basis. 

-- 

Michel TALON

___
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to [EMAIL PROTECTED]


Upgrading through packages: an experience.

2008-07-12 Thread Michel Talon
Hello,

Since KDE recently appeared in the Latest prebuilt packages, and my 
main desktop ports (running FreeBSD-7.0-RELEASE) had not been upgraded
since more than a year i decided to test my pkgupgrade
(www.lpthe.jussieu.fr/~talon/pkgupgrade) on a machine with many ports
installed (all Gnome and KDE basically, plus many other things) and
going through several important changes in the ports system (the
new modularized Xorg, the new gettext, etc.). I wanted a worst case
test, including using the Latest packages and not a RELEASE. 

The net result is that it went through without problems, at a speed
comparable to that one observes for Debian upgrades, but at the end
some small glitches remained, due to using Latest packages.

Some details follow:

-first the script pkgupgrade crashed. This is due to the fact that the
old python version used libpthread, and there are apparent bugs on 7.0,
while it worked OK on 6.2.  This was solved using libmap.conf to force
use of libthr for threading. Since KSE is now deprecated it is not
useful to describe this bug more fully. Anyways programs doing IO and
threading don't act reliably with libpthread under 7.0.

- after that things were smooth. There has been fantastic progress
in the utility pkg_add, it runs at least twice faster than last year.
This explains the very speedy upgrade i had. More precisely, first the
specs of the machine, it is a 4 years old Pentium 4 with IDE disk, so
nothing particularly fast. There were 744 installed ports initially.
Some of them i put on hold, since they are very heavy to build or install
(java, tetex). So finally pkgupgrade removed 616 old packages and
installed 877 new packages (the difference is of course because of the
new modular Xorg). A few remained to be compiled. At the end i have now
1017 installed ports.

- the speed of this upgrade was really remarkable. The initial analysis
by pkgupgrade took 2 min, the download of necessary packages (for a
total of 1.3 GB) from the french FreeBSD mirror took 5 min (i have a
100Mb/s connection to it, but this also shows the gains of maintaining a
unique ftp connection to the server for the whole download), and was
simultaneous with backing up the old packages (only shared libraries and
config files) which took 28 mn.  So after half an hour i had a shell
script that i reviewed fully to avoid removing stuff that i had
forgotten to put on hold.

- then i runned the shell script UpgradeShell, which removed old
packages (took 18 mn, pkg_delete is still slow, compared to pkg_add)
then installed 877 packages in 48 mn! This is absolutely fantastic, last
year i spent here 2 hours in a much smaller installation. Finally it
compiled a few packages, notably one of them kdewebdev took 2 hours
by itself, that is much more than the complete upgrade procedure. This
illustrates the point that compiling from source is a waste of time.
I have put the Logs here http://www.lpthe.jussieu.fr/~talon/2008-07-11.tgz
so that one can see how it runs in practice.


Now the problems. They come from the fact that the Latest packages are
not always coherent between themselves or with the libraries in
FreeBSD-7.0. So, while most programs runned perfectly well, a few
crashed when i tried them. I traced most problems to the fact that
the use of fcntl() to lock files did not work in some cases. This was
for example the case for tin when it tries to lock the posted  file.
I had to recompile such ports, now they run fine. An example which
doesn't run is kdm because it needs to lock /var/run/kdm.lock. This
is very annoying since kdebase is huge to recompile. All other KDE
stuff runs OK. The lesson of this story is that it is *not* a good
idea to use the Latest packages when doing binary upgrades, one should
stick to RELEASE.


Conclusion: binary upgrades, even in very messy situation are very
doable. They take a reasonable time, completely comparable to what one
may expect under Linux. Compiling a single KDE port took longer that
the whole upgrade procedure except the compilation. 
 

-- 

Michel TALON

___
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: Upgrading through packages: an experience.

2008-07-12 Thread Michel Talon
On Sat, Jul 12, 2008 at 04:35:29PM +0200, Kris Kennaway wrote:
 Michel Talon wrote:
 Hello,
 
 Since KDE recently appeared in the Latest prebuilt packages
 
 Well, it's always been there, except when it could not be built.
 

Well it was not here ten days ago, i think, when it was discussed in this
mailing list. I checked, this days and several days afterwards. Then
i saw since perhaps 2 or 3 days.


 
 Now the problems. They come from the fact that the Latest packages are
 not always coherent between themselves or with the libraries in
 FreeBSD-7.0.
 
 No, they are.  In fact this is a key design feature, and the same reason 
 why sometimes certain packages do not appear on the FTP site (if they 
 did appear they would be necessarily *out* of sync).  Similarly they are 
 always built against recent versions of -STABLE, by design.

So there has been some changes between 7.0-RELEASE and STABLE since 
i have just got some minutes ago:

niobe% wget http://myfreebsd.homeunix.net/csup.core
/libexec/ld-elf.so.1: /lib/libc.so.7: version FBSD_1.1 required by wget
not found

I did not remember that versioned symbols were in FreeBSD-7. Of course
after a rebuild, wget works. I had another similar problem somewhere,
but all others were related to fcntl() locking (*) problems.

 
 Glad to hear your experience was generally positive though.
 

Yes, very positive. In particular a point i forgot to stress, the
coverage of the prebuilt packages is excellent now, as can be testified
by the fact that only 19 ports had to be compiled while 877 packages
were present. This is thanks to you and your work on the cluster.
One aim of my message was to show that, at present, the coverage is so
good that one can envision a Debian-like experience on FreeBSD when
doing binary upgrades, even going through considerable evolutions.

 Kris


(*) This is a ktrace of the problem:

niobe# ktrace -di kdm-bin 

.

  4214 kdm-bin  CALL  open(0x283052c4,O_RDWR,unused0xe)
  4214 kdm-bin  NAMI  /var/run/kdm.pid
  4214 kdm-bin  RET   open 3
  4214 kdm-bin  CALL  getdtablesize
  4214 kdm-bin  RET   getdtablesize 11095/0x2b57
  4214 kdm-bin  CALL  fcntl(0x3,F_GETFL,0)
  4214 kdm-bin  RET   fcntl 2
  4214 kdm-bin  CALL  fstat(0x3,0xbfbfddb0)
  4214 kdm-bin  RET   fstat 0
  4214 kdm-bin  CALL  read(0x3,0x28314000,0x1000)
  4214 kdm-bin  GIO   fd 3 read 0 bytes
   
  4214 kdm-bin  RET   read 0
  4214 kdm-bin  CALL  lseek(0x3,0,SEEK_SET,0)
  4214 kdm-bin  RET   lseek 0
  4214 kdm-bin  CALL  fcntl(0x3,invalid=12,0xbfbfe730)
  4214 kdm-bin  RET   fcntl -1 errno 22 Invalid argument

Note the invalid=12. This is followed by:

  4214 kdm-bin  CALL  sendto(0x4,0xbfbfd46e,0x4e,0,0,0)
  4214 kdm-bin  GIO   fd 4 wrote 78 bytes
   27Jul 12 17:18:29 kdm-bin[4214]: Can't create/lock pid file
/var/run/kdm.pid

And here the kdm.pid is created, it is the locking which fails.
Clearly things have changed for the fcntl() action type between
FreeBSD-7.0-RELEASE and the machine on which kdm-bin has been compiled.

-- 

Michel TALON

___
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: [patch] pkg_delete(1) speedup

2008-03-31 Thread Michel Talon
Roman Divacky wrote:

 To my eye, it doesn't look like matchbyorigin() could be
 re-implemented
 to be faster with little effort, but could somebody have a quick look
 as well? Would doing mmap() instead of scanning file line-by-line be
 any faster? (though I'm not saying it's a great idea)

In the python script check_pkg.py that i mentioned previously (*), i
observed that implementing a mmap solution insted of working line by
line produced a *great* speedup (5 times if i remember well), but
perhaps this is due to python specifics.

(*) http://www.lpthe.jussieu.fr/~talon/pkg_check.py

-- 

Michel TALON

___
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: ports system woes

2008-03-27 Thread Michel Talon
Garrett Cooper wrote:

 We're rehashing the discussion made last year around June - July.

Indeed.

 
 We came to the conclusion that BDB should be used, as no other DB  
 backend / API exists in the base system (currently), and porting  
 SQLLite (while nice) appeared to be non-trivial to port 

Are you kidding? The patch files are totally trivial modifications,
to include stdlib.h. The bigger one is in Makefile.in to take into
account these ones.

 and got a lot  of unhappy responses from folks.

This is true. A lot of people expressed aversion against SQL, by itself.
However it should not be bad to evaluate a solution based on BerkeleyDB,
another one on sqlite, and chose based on merit, not on aversions. What
is the simplest to use by the programmer writing pkg_* tools, what
offers the best performance and data organization, etc. At the moment
portupgrade uses a BerkeleyDB, are you convinced by the result? In
particular an obvious fact is that there are constant troubles when the
DB version number changes or the ruby adapter changes. One may expect
that no such problems will occur with a very stable and standardized
language like it is offered by sqlite. If this argument is correct, it
is quite strong, in my opinion, because i don't expect much performance
difference otherwise. There is also the question of atomicity and
locking which is particularly important in this context. It would be
useful to compare what the BdB in the base system has to offer
compared to sqlite - because comparing to what the most recent versions
of bdb in the ports can do has a different bearing on the question.

-- 

Michel TALON

___
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: ports system woes

2008-03-26 Thread Michel Talon
Pav Lucistnik wrote:

 Quick solution would be to gather all depnames for the deleted package,
 and then do a single pass over /var/db/pkg entries looking for origins.
 
 Ultimate solution would be to implement a database which would
 concentrate origins for all packages with linear lookup time.

In fact last year i wrote a python script which reads all the
/var/db/pkg/+CONTENTS files, and fixes all the +REQUIRED_BY files,
assuming they are corrupted. Moreover it follows the MOVED file.
Optionnally it decomposes the set of ports in connected components,
and builds graphviz graphs for the dependencies. Of course the 
leaf packages are written down. As far as i remember this program runs
in a few *seconds* certainly not minutes like it is said here for the
pkg_delete stuff. You can find it here:
http://www.lpthe.jussieu.fr/~talon/pkg_check.py

This being said, i agree with you, that for various reasons, the package
system needs to get rid of the extremely bad idea of abusing the
filesystem as a database, and use a true database for doing its job.
This would allow O(1) searches, as you are saying, and would allow to
perform appropriate locking for supporting parallel builds. We had this
discussion last year, and i am even more convinced that the good
solution is to use sqlite and not some half-assed solution like a
Berkeley database, if only because using a sql database will lead
naturally to a more structured solution, and not a pile of blobs, and
also because sqlite is a stable software.

More generally i disagree with Kris Kennaway idea that all is required
is to polish the existing tools. They are so obviously broken from all
points of view, particularly portupgrade, that only a complete rewrite
can do any good. Needless to say, this cannot please those FreeBSD ports
afficionados who are convinced that their toy is the best in the world.
Let me recall that *one* person has completely rewritten the ports system
for OpenBSD (Marc Espie), including the pkg* tools and all the Makefile
scripts, and now it works.



-- 

Michel TALON

___
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: ports system woes

2008-03-26 Thread Michel Talon
Frank Mayhar wrote:

 Portupgrade is, in fact, my preferred application, although
 lately I've had to move to portmaster just because of the O(n^2)
 inefficiencies.  It doesn't need to be replaced, it needs to be fixed,

I have rarely seen such a wonderful contradiction between the two halves
of the same sentence.

 Oh, please.  The FreeBSD ports system works as well.  Instead of

No, it doesn't or it does barely.

 complaining, why don't you actually do someting about it?  Code speaks
 louder than mere words.

We have learnt recently that many people have brought code to the table,
including myself, only to be scorned by people of your sort. I have yet
to see people like you contributing any testing or discussion when code
is offered, all you are good for is parrotting Code speaks louder than
mere words.


-- 

Michel TALON

___
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: Utility for safe updating of ports in base system

2008-03-20 Thread Michel Talon
On Thu, Mar 20, 2008 at 01:05:27AM -0700, Doug Barton wrote:
 On Thu, 20 Mar 2008, Michel Talon wrote:
 
 Doug Barton wrote:
 i would venture to say that such an utility
 should be able to upgrade things based of *binary* packages, and
 consequently that portmaster is not a suitable candidate.
 
 That ability is not included in the current requirements document, and was 
 not specifically mentioned the last time we had the discussion on the 
 list. If the portmgr folks intend that to be a requirement, the current 
 ideas list entry should be amended.

Indeed you are right, but i think this should be a requirement for the
reasons discussed below, and is implicit in the fact that the projects
refers to a portupgrade written in C, and portupgrade has such a
feature.

 
 For example
 pkg_add installs a binary package, if you want to compile and install
 you run make  all install clean in the ports tree.
 
 Um, you lost me there.

This is simple, all pkg_* tools operate on binary packages at present,
it would be strange that a newcomer, pkg_upgrade has no way to operate
on binary packages.

 
 One of the
 requirements of an upgrade system is predictability, this can only
 be achieved by using binary packages.
 
 You gain a certain amount of flexibility with packages, at the expense of 
 being able to customize things. As long as the user understands that, then 
 it's fine.
 

I agree that the possibility of compiling from source brings ability to
costumize things. However this very ability ruins all hope of having a
smooth upgrade system. Due to customization, as soon as you have many
ports installed, there is a combinatorial explosion of possibilities and
nobody can test that the upgrade process works. OpenBSD people have
been converted to this idea, and now push for an upgrade from binary
packages exclusively.


So i think that the user
should have two possibilities:
- either he wants to customize, and he is on his own. He will need to
  compile his software, and in this case portmaster is the perfect tool
for managing his upgrades. Since the compilation will take most of the
time, it is not relevant to consider performance questions on the
portmaster side.
- or he wants to use a tried and true upgrade path, he doesn't want to
  spend time compiling, he wants speed. Basically he wants the Debian
or Ubuntu experience. In this case, using prebuilt binary packages is
the only reasonable way of achieving the result. I agree that due to
licence peculiarities (think e.g. Java) there are a small number of
ports which will need compilation, so the experience cannot be perfect.

 Another requirement, in my opinion,
 is speed, and the lack of speed, which is completely hidden when you
 compile your packages will be immediately apparent if you try to use
 packages. Indeed portupgrade has options -P and -PP to work with
 packages which could serve as a prototype for a pkg_upgrade written
 in C, except that they work poorly, and in particular run slowly.
 
 Where do you think the slowness is?

Several causes of slowness have already been identified. Parsing
/var/db/pkg is slow, this is why the idea of using a database has been
advocated. Much worse, running make in a port directory, even only to
get the value of a variable is slow. Programs like portupgrade do such
things repeatedly without caching the results in memory and incur
large time penalties. Similarly for each package he wants to download,
portupgrade opens an ftp connection and retreives it independently, etc.
Obviously no effort at all has been spent so that things are fast.

 One of its features, that i consider very important for correct
 operation, is that it computes the list of all packages to be deleted
 and all packages to be installed and asks the user if he agrees before
 doing anything.
 
 Why do you consider this an important feature? (I'm not disagreeing, just 
 curious about your thought process here.)

Because you can see that something is going to break in advance and
renounce to the upgrade. This occurred several times for me on Debian.
Usually this is because some package has a security problem, and this is
solved waiting one or two days.

 
 It fetches all necessary packages before installing or
 deleting anything.
 
 That seems sensible, thanks for mentioning that bit.
 
 Hence you can be sure that the upgrade process will
 not end in a mess if something crashes in the middle, like it is the
 case with all present standard FreeBSD upgraders.
 
 Not sure if this helps the situation you're referring to or not, but 
 portmaster will by default make a backup package of each port that it 
 updates, so if something dies in the middle you could back out of it by 
 hand if you need to.
 

Yes, so does portupgrade, but it deletes the backup as soon as the
installation of the new port succeeds. This means that in the event of
a crash in the middle you remain with a half upgraded system, and no
way to backup completely to the previous working state

Re: Utility for safe updating of ports in base system

2008-03-20 Thread Michel Talon
On Thu, Mar 20, 2008 at 05:59:28PM +0800, Denise H. G. wrote:
 Michel Talon [EMAIL PROTECTED] writes:
 
 Actually I don't think a batch download and install process would help
 much, especially for a freshly installed system because it might be a
 huge download job and much waiting time if one is going to install
 GNOME/KDE etc. from scratch. Perhaps the new `pkg_upgrade' could provide
 versatile options to complete such tasks.
 

In fact a batch download, followed by batch install is much faster than 
constant interspersing of backup, download, install, etc. like 
portupgrade does. In particular there is only one ftp connection for
downloading everything which cuts on time, and you can do backups at the
same time. If you don't beleive me you can try the prototype (in python)
that i have written a year ago, and which does precisely that:
http://www.lpthe.jussieu.fr/~talon/pkgupgrade
(which needs http://www.lpthe.jussieu.fr/~talon/pkg_save.py)
Most of the time in the script is spent recomputing the INDEX for all
installed files, because i assumed the INDEX is not necessarily up to
date.


 
 
 -- 
 Denise H. G. darcsis AT gmail DOT com

-- 

Michel TALON

___
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: Utility for safe updating of ports in base system

2008-03-20 Thread Michel Talon
On Thu, Mar 20, 2008 at 09:34:38PM +0800, Denise H. G. wrote:
 
 Yes, I've had great impressions by the debian's apt- tools. But it seems
 that the debian package servers maintain an index or something for all
 the packages. And if you want to upgrade or install a certain package,
 you just fetch the meta info for that package from the package server
 and do a comparison with your local index. This makes versioned
 dependencies rather easy to play around.
 

Indeed there is a compressed file on the Debian repository, containing all
information on each available package. It is stored locally by apt-get when
you run apt-get update in a custom database. Similarly apt-get maintains
information in the database of the installed packages. Hence comparison is
easy and fast. In the FreeBSD case there is always an INDEX file in the
FreeBSD repositories which lists similar information (perhaps not enough
information) for each package. So in principle one could do similar things as 
Debian does.


-- 

Michel TALON

___
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: Utility for safe updating of ports in base system

2008-03-20 Thread Michel Talon
On Thu, Mar 20, 2008 at 01:12:06PM -0700, Doug Barton wrote:
 
 Fair enough, but can we please come quickly to a consensus on what
 _all_ of the requirements should be? Two things I'd like to avoid. One
 is the feeling that no matter how many hoops I jump through, there is
 always going to be one more placed in my path because we really don't
 want portmaster in the base. The other is frustration on the part of
 any student brave enough to tackle this task.

Now that it is clear that 2 different things are desirable, a utility
to upgrade by ports, and a utility to upgrade by packages, may i say
that i agree completely that portmaster does the first perfectly,
and should be in the base system, notably since it is a shell script 
which doesn't cost anything. 

But i remain convinced that the second one is also necessary and in fact much
more important. Since portmaster is already here, a SOC project should
concentrate on the second aim, which is perfectly summarized by the name
pkg_upgrade (by opposition to port_upgrade). 

The ideas necessary to develop such a project are apparent in the ruby program
portupgrade and/or my python pkgupgrade, but a C program is desirable so that
there is no external dependency.  More precisely portupgrade and pkgupgrade
both use extensively data structures such as arrays and dictionaries (perl
hashes) so it may be that using C++ and the STL containers  is more convenient
than C.

 
 You also need to look at the other side of that, which is an
 exponential increase in the number of package downloads, and the
 incumbent costs in terms of bandwidth, processor time, etc.

All big Linux distributions, which have many times more users, incur
this cost without apparent problem. For example my provider, which
is a quite large one, has a mirror of many distributions, including
Free and NetBSD, with incredible bandwith. See
ftp://ftp.free.fr/mirrors
I can download a DVD from my office at 100Mb/s from here at any time.

I would venture to say that the problem you mention is really a non problem.


-- 

Michel TALON

___
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: Utility for safe updating of ports in base system

2008-03-19 Thread Michel Talon
Doug Barton wrote:
 So, I renew my inquiry. :) Is portmaster a suitable candidate to fulfill 
 the role of the utility described, and if not, why not?

At the risk of being flamed, i would venture to say that such an utility
should be able to upgrade things based of *binary* packages, and
consequently that portmaster is not a suitable candidate. For example
pkg_add installs a binary package, if you want to compile and install
you run make  all install clean in the ports tree. One of the
requirements of an upgrade system is predictability, this can only
be achieved by using binary packages. Another requirement, in my opinion,
is speed, and the lack of speed, which is completely hidden when you
compile your packages will be immediately apparent if you try to use
packages. Indeed portupgrade has options -P and -PP to work with
packages which could serve as a prototype for a pkg_upgrade written
in C, except that they work poorly, and in particular run slowly.
In my opinion, an example of a correct pkg_upgrade type programm
written in C++ is the Debian apt-get. It works predictably, fast, etc.
One of its features, that i consider very important for correct
operation, is that it computes the list of all packages to be deleted
and all packages to be installed and asks the user if he agrees before
doing anything. It fetches all necessary packages before installing or
deleting anything. Hence you can be sure that the upgrade process will
not end in a mess if something crashes in the middle, like it is the
case with all present standard FreeBSD upgraders. 

-- 

Michel TALON

___
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: portupgrade installing unexpected dependencies

2008-02-13 Thread Michel Talon
Robert Huff wrote:
 Matthew Seaman writes:
 
   Building your own INDEX is easy (just type 'make index' in
   /usr/ports) but very time consuming -- probably 45 minutes or so
   on a typical desktop box
 
   On a lightly loaded p4/2.2Ghz (with only 512mb of RAM) it
 routinely takes about 75 minutes.
 
 
   Robert Huff

Last time i have built the INDEX on a core 2 duo machine, it took less
than 10 minutes, in fact 8 minutes if i remember well, which is ways
less than the numbers you are claiming. 


-- 

Michel TALON

___
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: TeTeX and TeXLive

2007-12-14 Thread Michel Talon
Albert Shih wrote:

 I'm just want known if there are any plan to replace teTeX ports (the
 project as stop) by TeXLive ?
 
 I've send long time ago a mail to teTeX maintainer and I don't have any
 answer. 
 
 I known that's nothing urgent, but without tex the live is hard ;-)

Well, TeX itself is frozen since many years, so the differences between 
TeTeX and TeXLive are of the order of the infinitesimal. It is not like
you could not do happy texing using TeTeX. Of course the migration to
TeXLive will have to occur but i understand that it is not an ultra hot
priority. Personnally i would be happier with a distribution much
lighter than TeTeX, i think the only progress of any interest in all
that stuff is pdftex. If only i could put Latex2e in the trash can ...


-- 

Michel TALON

___
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: duration of the ports freeze

2007-12-01 Thread Michel Talon
Aryeh M. Friedman wrote:

 My main issue is the lack of good depenancy tracking

Dependency tracking is a manual operation of the port maintainer.
There is no way to automatize it, because there is a lot more in
dependencies than shared libraries (which could be tracked
automatically). As such it is as good or bad as the port maintainer, and
there is no way to change that. You will always encounter ports with 
huge and irrelevant dependencies, instead of the ideal smallest
subset allowing the port to run.

 (leaving it to the preview of each port I think is asking for it in
 the long run) and some rather inconsistent behaviour between say the
 following three options:
 
 cd /usr/ports/{some metaport}
 make install
 

In my non orthodox opinion, this should be reserved to port developers
and similar power users who require maximum flexibility. For casual users
flexibility is not required at all and is more a hindrance than a bonus.

 portinstall {some metaport}

Portupgrade has never worked correctly and will never, for a lot
of objective reasons supplementing the implementation choices.

 
 and
 
 pkg_add {some metaport}

In my opinion, things will be better when people will finally be
convinced that binary packages are the way to go, and then use a *good*
package management system such as apt-get. A functional upgrade system
can be built for packages, but cannot for ports, for obvious reasons.
The OpenBSD people have understood that, but  now it appears that
most FreeBSD people are happy with the source based system, and all the
problems going with such a choice.

-- 

Michel TALON

___
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: Proposal for another category in INDEX: common_deps

2007-07-21 Thread Michel Talon
Doug Barton wrote:

  and then mainly as a resource to make easier the lives of the
  people that write ports management software.
 
 Well, I'm one of those people, and portmaster ignores the index file
 altogether, for whatever that's worth.

Me too for pkgupgrade. In my case the rationale is that, if something
has to be compiled on the machine, it is best that the information is
exactly compatible with the state of the ports tree on the machine.  So
like portmaster, pkgupgrade recomputes the Index fields for all
installed ports and their dependencies. This is no big deal, uses less
than a minute on a modern machine, totally negligible compared to the
time for downloading distfiles or packages, or running pkg_delete or
pkg_add. In pkgupgrade case one needs to deal with both binary packages
and ports, so RUN_DEPENDS is used to discover dependencies of packages,
and all other fields coalesced to discover dependencies of ports. There
is of course a further subtelty: you have to compare old and new ports
which may have changed name in between. The rule i have taken is to
systematically  use the most recent name as it appears in the ports
tree, and evolve old names following the MOVED file (perhaps
recursively) to be able to compare them with new names. This leaves on
the border of the road ports which have disappeared in between, but
anyways you cannot upgrade them by source ... I think that portmaster
does more or less the same, while, if i don't err, portupgrade doesn't
and tries to guess new names using heuristics, which sometimes
spectacularly fails.

Well, all this to say that, for the purpose of upgrading a port, it is
the coalesced values of fetch, extract, etc. which is of interest. Of
course, for other purposes, like Mark Linimon says, these fields may
have individual interest.



-- 

Michel TALON

___
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: Proposal for another category in INDEX: common_deps

2007-07-20 Thread Michel Talon
Matthew Seaman wrote:

 Another interesting idea would be to separate out the LIB_DEPENDS
 data.  At the moment there is a separate LIB_DEPENDS variable that
 can be used in Makefiles, but the INDEX processing includes the
 LIB_DEPENDS data with both the BUILD_DEPENDS and the RUN_DEPENDS
 fields.  Keeping LIB_DEPENDS separate should allow a useful
 optimization in the case of shlib ABI version number bumps.
 

Clear that you are the author of
http://www.infracaninophile.co.uk/portindex/
and so know the state of the Index stuff from inside out!

Personnally i think there are far too many totally useless categories
here, as you are saying, only RUN_DEPENDS and BUILD_DEPENDS have any
usefulness, the first if you install from packages, the second if you
install from ports. It is totally irrelevant to know if a dependency is
FETCH, EXTRACT or whatever, since you need it anyway to build the
port. Merging LIB_DEPENDS in both BUILD and RUN is justified since you
need the libraries both for compiling and for running the port.

Introducing a lot of dependency categories renders writing an upgrade
mechanism very complicated. Either you coalesce everything into one big
category, voiding the distinctions of their content, or you have to
introduce an infinitely complicated logic to take care of them. For
example you explain that knowing only LIB_DEPENDS would help knowing
what to upgrade when gettext is bumped. But other ports may have
important dependencies not going through LIB_DEPENDS. You need a crystal
ball to disentangle all the cases. An upgrade mechanism can proceed with
a mixture of packages and ports, for example portupgrade -P. The only
relevant info for determining what to install or build previously is
RUN_DEPENDS and BUILD_DEPENDS. Everything else is garbage. The Debian
people have a simpler situation with apt-get, they have only one sort of
dependency to consider, the equivalent of RUN_DEPENDS. Hence they can
build a reliable sorted graph of dependencies.


-- 

Michel TALON

___
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: Keeping track of automatically installed dependency-only ports

2007-07-07 Thread Michel Talon
Doug Barton said:

 Jeremie Le Hen wrote:
  Hi,
  
  Is there a way to track dependency-only ports, so that if I install
  port0 which requires port1 which in turn requires port2 and so on,
  deinstalling port0 will deinstall portN up to the first one required
  by
  another port or one I explicitely installed.
 
 I realize that this is an old post, but the thread it generated
 indicated that there is demand for this kind of functionality, and no
 solutions were presented that I could see.
 
 Portmaster actually has what I believe you are looking for. 

Finding installed packages which have no REQUIRED_BY is easy, 
portmaster do it, check_pkg.py do it, but i don't think this is the
solution of the problem. For example, port1 may require port2 which
itself requires port3. Assume you remove port1, and that, as a
consequence port2 and port3 are no more necessary. It is only port2
which has an empty REQUIRED_BY, as long as you have not removed
port2, port3 mentions it in REQUIRED_BY. So the deletion should have to
be recursive. Moreover on a large installation you may have a large
number of ports that should be removed and should require user
approval to do so. But it is hard to remember several months after the
fact, if a port without REQUIRED_BY has been installed as a dependency
or for a precise reason. The only reliable way to detect ports which
have been installed as a dependency is to create a database indicating
which ports have been required by the end user, and which ones have been
automatically installed. Such a database doesn't exist in the FreeBSD
ports system, and as a consequence, it cannot do a good job of cleaning
the installed packages. Moreover due to the tendency of some configure
scripts to detect automatically installed libraries and behave
accordingly, the presence of unwanted and uncleaned ports may be not
only a small inconvenience, but may have bad consequences. So i think
it should be wise to introduce a database as indicated above, in the
same way it has been introduced in aptitude as an enhancement of apt-get.



-- 

Michel TALON

___
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: Keeping track of automatically installed dependency-only ports

2007-07-07 Thread Michel Talon
On Sat, Jul 07, 2007 at 09:57:59AM -0700, Doug Barton wrote:
 
  The only reliable way to detect ports which have been installed as
  a dependency is to create a database
 
 *shudder* You just tripped over your own argument here. There are
 plenty of ways that we could recognize a port that was installed as a
 dependency. The one that comes immediately to mind is to create a flag
 file in /var/db/pkg/foo (or /var/db/ports/foo) to indicate that the
 port was installed as a dependency. It would be trivial for portmaster
 and portupgrade to do this, slightly more complicated for it to be
 done in bsd.port.mk, but not impossible.
 

I agree completely with you. Of course when i say that a database has to
be created, this may very well be reduced to a flag somewhere in
/var/db/pkg. For me, /var/db/pkg is a database describing the installed
ports. Wether abusing the filesystem to create this database is good for
performance is a completely different problem, at least it has the
advantage of being  very transparent.


  indicating which ports have been required by the end user, and
  which ones have been automatically installed.
 
 Well, what happens if an application (rather than a library) gets
 installed as a dependency, but you decide that you like that
 application, and want to keep it? How do you promote something from
 dependency installed to user installed?

Indeed you are right, it should be possible to decide of such a
promotion.

 
 Personally I think that portmaster's approach is the right one. If you
 accidentally delete something that it turns out you really do need,
 you can always install it again. On the other hand, the presence of an
 empty +REQUIRED_BY file is a very reliable indication that something
 was previously installed as a dependency, but is no longer needed.
 

Typically you can install the java jdk to do programming, and without
any required_by stuff. If you accidently erase it, it will be expensive
to recreate. Obviously this is not a very good example because this one
you will remember. I was thinking more to some obscure ports that you
install by curiosity. After several months, perhaps you discover it is
on your machine, and you have some use for it. Perhaps if you had erased
it, the distfile  would have disappeared, or marked broken with
new versions of FreeBSD, no more compilable, etc. 


 I'd be interested to hear if others have opinions about this ...

Sure this is a point of interest, the more opinions, the better.

-- 

Michel TALON

___
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: Finding slowdowns in pkg_install

2007-07-06 Thread Michel Talon
Tim Kientzle said:

 One approach I prototyped sometime back was to use
 libarchive in pkg_add as follows:
* Open the archive
* Read +CONTENTS directly into memory (it's
 guaranteed to always be first in the archive)

I can only concur with that. In my program
http://www.lpthe.jussieu.fr/~talon/check_pkg.py
i discovered that memory mapping +CONTENTS and then working
in memory before rewriting it was around 5 times faster
than reading line by line and parsing each line. See function
fix_pkg_database(). By the way i am writing a new +CONTENTS
fileand then renaming it, which avoids leaving a mess if
something goes astray like portupgrade does.


-- 

Michel TALON

___
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: Uggg!

2007-06-01 Thread Michel Talon
Thomas Hummel wrote:

 Sure. But that doesn't explain why so many +CONTENT files were screwed
 up and why there isn't a easy or easier way to re-generate them.

Portupgrade (at least pkgdb) has functionality to edit the +CONTENTS
file with the aim of fixing the dependencies.  So one may understand
that if it is killed in the middle it may leave the +CONTENTS file
screwed. It would be wise to move the file to +CONTENTS.BAK and then
edit the +CONTENTS file, or edit a copy and then apply rename.

You cannot regenerate the +CONTENTS file in a reliable way, because its
content is depending on the way in which you installed software on the
machine, from package or port, and then what was the building option 
for the port. Note that all files have an md5sum which willbe different
for any variation! It is even dependent on the history of the pkgdb 
you have done, since this edits the file.

Moral of the story, as other people are saying, keeping a backup of the
pkgdb should be necessary before taking unreliable action.



-- 

Michel TALON

___
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: Looking for speed increases in make index

2007-05-27 Thread Michel Talon
Stephen Montgomery-Smith said:

 I suggest rewriting make so that variables are only evaluated on a 
 need to know basis. 
 or I have tried to do this.

Of course a lot of people have thinked about it, and quickly realized
that it was not going to work. In the bsd.ports.mk, evaluation of one
variable may be dependent on some conditional, which may itself be
dependant on some other variable, appearing as some target. This
constantly happens in bsd.ports.mk.
 
If you think about that, you convince yourself that a reduced make
needs to understand targets, needs to understand conditionals, and needs
to evaluate not only the variable under consideration, but but possibly
any other. In other words, you need a full blown make.

To gain some performance, a first idea would be to simplify
bsd.ports.mk. I am convinced that a substantial part of the 4000 lines
are historical crap which serve no useful purpose. There are tons of
variables who have probably purely anecdotical interest. There are
targets which could be happily suppressed. Of course, due to the
complexity of bsd.ports.mk, rewriting it is certainly not an easy task.
There is a freebsd port whose aim is to rewrite it, i don't know how
far they are. The NetBSD people have completely rewritten the system, i
have no idea if the new one is faster. The OpenBSD people have also
rewritten bsd.ports.mk, with apparently much faster makefile.

A second idea would be to multithread make, since modern machines will
have a lot of cores. At present make -j something forks submakes
and waits for their completion. This doesn't help for the problem at
hand. However, multithreading the execution of a single makefile is
certainly not trivial due to the interdependencies.

Anyways, one of the things which cannot be a big factor is reading
bsd.ports.mk from hard disk. It is certainly cached in memory when you
run make index. On the other hand it is so big that it probably doesn't
fit in cache, or probably only fits in caches of machines generously
endowed. I have remarked that the difference of execution speed of make
index between machines of similar speed but very different cache size
(i am thinking Pentium 4 versus Core 2 Duo) is striking. It is less
than 10 minutes on the big cache machine versus 30 minutes on the small
cache one. If the cache effect is indeed dominant, then reducing the
size of bsd.ports.mk by all possible means would be very beneficial.

By the way an alternative system would be to use something other than
make to do the job. This is what the Gentoo people are doing, using
first a python based system, and now a C++ one (paludis). Here also i
don't have any idea if it is faster.




-- 

Michel TALON

___
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: Specs for saving old shared libs

2007-05-18 Thread Michel Talon

Benjamin Lutz wrote:

  Benjamin Lutz writes:
The last part seems to be the catch here. How about providing a
tool that scans all binaries in the standard locations for what
libs they depend on, and also allows the user/admin to specify
the paths to binaries that he installed on his own, then outputs
a list of unused libraries?
 
Are you aware of libchk and portsclean?
 
 Oh. No, I wasn't. Well, I guess that solves this problem then :)

Not completely because some programs install shared libraries in very
non standard places, notably perl installs perl.so like this:
/usr/local/lib/perl5/5.8.8/mach/CORE/libperl.so
or mozilla installs mozilla libs in another strange place. And there are
other ports which make use of such shared libraries, for example Gnome
depends on the mozilla libs or inn depends on perl.so.

Hence the only correct solution is to scan all files in a port, and 
determine if any of them is a shared library to keep a copy of it. This
is what portupgrade does, as well as Cyrille Szymanski's pkg_save:
http://www.lpthe.jussieu.fr/~talon/pkg_save.py

The important point is: what do you do with shared libraries you have 
saved? Either you put them in /usr/local/lib/compat like portupgrade
does, and you run ldconfig here, then there is no problem with these
libraries but you have no real way to discover which are necessary,
which are not (libchk cannot assert that since it looks only in standard
places) or you can say like portmaster, i don't want to rely on 
this mechanism, you keep your copy and use it only in case some library
is really missing and you don't know how to solve the problem in another
way.



-- 

Michel TALON

___
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: Problems running pkgdb -fF

2007-03-19 Thread Michel Talon
multimedia/totem now uses gstreamer by default
 sed: 1: s|^\(@comment[: unbalanced brackets ([])

Perhaps there is a specific problem here, but i have observed
corruption under FreeBSD-6.2. Several times on my laptop where
various applications suddenly misbehave, rebooting cures that,
but once firefox was corrupted and i had to reinstall it. 
Since it has several experimental drivers i can perhaps blame them.
But once i have found completely corrupted +CONTENTS files on my desktop
which has supported hardware. The corrupted entry was flagged by my
check_pkg.py first time i used it on /var/db/pkg. Of course this is the
sort of thing absolutely impossible to characterize.


-- 

Michel TALON

___
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to [EMAIL PROTECTED]


pkgupgrade

2007-02-10 Thread Michel Talon
Hello,

this is to report a revised version of my program, intended to upgrade
a machine using mainly precompiled packages. All problems that i have
seen or have been reported to me have been fixed. So i think it is 
reasonably suitable for use, and i have sticked a 1.0 label.
I have also fixed all problems i have encountered with save_pkg.py, but
Cyrille Szymanski will perform a better cleanup, so i have appended a
0.5 tag. So fresh copies can be downloaded from:
http://www.lpthe.jussieu.fr/~talon/pkgupgrade-1.0
http://www.lpthe.jussieu.fr/~talon/save_pkg.py-0.5

They will be accessible as soon as the administrator will have fixed the
apache configuration :-(   (broken after a crash), or by email from me.

This is an example of running it:

niobe% ./pkgupgrade
There are now 621 packages installed.
Collecting installed packages.
Building the updated index.
Downloading INDEX from ftp server ftp.freebsd.org in directory
/pub/FreeBSD/ports/i386/packages-6.2-release
INDEX downloading finished.
Building and filling the dependency DAG.
Printing the upgrade list in UpgradeLog
Total time spent in analysis:  01 minutes 20 seconds.
Second phase, downloads and backups.
Total time spent in downloads:  00 minutes 01 seconds.
Total time spent in backups:  00 minutes 20 seconds.
Writing upgrade shell script.
Will remove 391 old packages.
Will install 465 new binary packages.
Will compile 7 ports.
All tasks completed.
**
Total time:  02 minutes 30 seconds.

Here of course downloads and backups had been performed in previous
runs, except for a small part of backups which are redone. So one can
say that 2mn30s is the overhead of the program itself. 

Out of the binary packages, to be installed, 245 have been found on
the FreeBSD-6.2 disk2 and so are not downloaded.
Downloads take of the order of 10 minutes on a high speed connection,
more on a low speed one, of course, but have to be done anyways. 
Backups take less time, and are performed during downloads.

It is to be noted that, out of 600 installed ports, 200 will not be
upgraded, because there is no more recent precompiled version, 400
will be removed and replaced by more recent versions, and only 7 ports
will need recompilation. In the present case they are, as shown by the
upgrade shell script:
TOBUILD='print/pdflib graphics/blender-devel editors/vim
emulators/kqemu-kmod devel/py-urwid audio/lame
audio/faac'
These are indeed not present on the FreeBSD-6.2 repository. Clearly
these compilations will take very little time, and the quasi totality
of ports will be upgraded through binary packages, as intended,
including openoffice which is now found directly in the repository.

Hoping that this will help maintaining FreeBSD boxes without spending 
hours doing it.

-- 

Michel TALON

___
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to [EMAIL PROTECTED]


pkgupgrade

2007-01-31 Thread Michel Talon
Hello,

this is to announce a first cut at an upgrading system more centered on
packages than portupgrade or portmaster, so i have called it pkgupgrade.
This is a python program, so not convenient for pytho-phobic people.

You can find it at:
http://www.lpthe.jussieu.fr/~talon/pkgupgrade
as well as the companion program:
http://www.lpthe.jussieu.fr/~talon/save_pkg.py
written by Cyrille Szymanski who has kindly given me permission to
publish it here.

Both are of course under BSD licence. Here save_pkg.py is a program
which does selective backing of old packages before an upgrade and can
be run independently, but is called by pkgupgrade and is thus necessary.
Running save_pkg.py -h gives usage information.

A documentation explaining pkgupgrade can be found here:
http://www.lpthe.jussieu.fr/~talon/freebsdports.html#htoc19
but basically, one creates a clean directory and run pkgupgrade here as
simple user. There are no options. The directory will be populated with
self-explanatory stuff. Be prepared to use a lot of space in the
directory, however there is no destructive action at all. A good way to
reduce downloading and disk consumption is to mount the second disk of
the freebsd release set under /cdrom, previously to run pkgupgrade.
It will locate necessary packages here.


The main end result is a shell script able to do the upgrade at one
stroke. This is dangerous, but it is easy to check the shell
script, so the danger is certainly less than wiping everything and
reinstalling, which is at present my preferred method.


Of course this program implements my pet peeves, reducing port
compilation to the minimum, because in my experience this fails far too
often, determining dependencies previous anything else, downloading all
downloadable precompiled packages before taking any destructive action,
and knowing in advance, before the system is ruined what exact steps
will be taken. Then wiping everything which needs to be upgraded and 
reinstalling fresh stuff. In other words it is far more inspired by the 
Debian apt-get system than by progressive systems like portupgrade or
portmaster which update things by little steps. In my experience the
Debian system is far more reliable than the FreeBSD one, but such
reliability will never be accessible to FreeBSD as long as *all* ports
are not available as packages.

Obviously pkgupgrade needs further polishing, it is, like portupgrade,
somewhat complex, and bugs can easily creep in short as well as complex
programs. I will be very happy if i get feedback on bugs or
misbehaviors, and so will Cyrille.



-- 

Michel TALON

___
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to [EMAIL PROTECTED]


Dependency question

2007-01-12 Thread Michel Talon
Hello,

since i am writing a substitute program to portupgrade, i have noticed a
problem that i have hard time figuring out, and i would like to sollicit
the advice of more experienced people. The point is, what to do about
ports which have been installed as dependencies of some other ports, but
the dependency has changed afterwards and nothing particular occurs in
the MOVED file.
The specific example i have in mind is the following. Installing
gnome-session brings as dependency a zeroconf program. Some time ago, it
was howl, now it is avahi. If i upgrade the installed software without
further consideration of the problem, both howl *and* avahi will be
installed (and howl upgraded). If MOVED mentioned that howl has
disappeared, then i would have only avahi, which would be more correct.
Or it could be mentioned that howl has been moved to avahi, while in
fact there is no mention of howl.
A somewhat similar problem occurs with python. I have a lot of programs
depending on python, and python installed. But in more recent ports tree,
all these programs are marked dependent on python24, so if i upgrade, i
will have both python24 and python installed. Presumably they are
presently the same, but python will become python25. However nothing in
MOVED helps to solve this issue.
At present the only simple thing i can do is follow MOVED for what is
mentioned in MOVED, try to upgrade the rest, while killing disappeared
ports, and hope that dependency will restore an appropriate system. Do
you have better ideas?

By the way, a first step program is available here:
http://www.lpthe.jussieu.fr/~talon/analyze_pkg.py
It will analyze installed packages, follow MOVED, and compute the INDEX
for all installed packages and all their dependencies, that it
discovers while computing the INDEX. In my case i have around 600
installed ports, it discovers around 100 dependencies, and the procedure
takes around 1mn25 (on a P4, 3Ghz). The result can be found in the files
ErrorLog and INDEX.


-- 

Michel TALON

___
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to [EMAIL PROTECTED]


Server to browse ports tree.

2006-12-14 Thread Michel Talon
Some time ago, people discussed the idea of writing an http server
allowing to browse the ports tree in the same way as one can do using
the README.html. I have just written one, in python, using the exact
same html templates which make readmes uses. Of course it needs an
INDEX file to work. It is free and can be downloaded here:
http://www.lpthe.jussieu.fr/~talon/show_index.py

To run it simply make it executable and launch it. It will open a port on
8080 that one can browse with any browser on http://localhost:8080,
of course if the browser is not instructed to go looking on some proxy.
If port 8080 is inconvenient, on can launch it as
./show_index.py port number

This server is very snappy for single use, it is much faster and cleaner 
than building the README.html (but requires python, of course!). Someone
with html skills, not my case, could improve on templates, however.

-- 

Michel TALON

___
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to [EMAIL PROTECTED]


  1   2   >