Re: ports/*/jpeg "Thanks a lot guys"

2009-08-09 Thread Matthew Seaman



On Sun, Aug 2, 2009 at 7:52 AM, Matthew
Seaman wrote:

Matthew Seaman wrote:



Doing (1) using my p5-FreeBSD-Portindex code is pretty easy.  It's about
time I released an update anyhow -- I'll code up a little app that
processes
the LIB_DEPENDS linkages already stored in the cache and lists each port
that has a LIB_DEPENDS, together with all the ports it depends on
cumulatively.



I've got this working now -- I still need to do some more testing, update
documentation and stuff before I release version 2.2 of
p5-FreeBSD-Portindex,


Version 2.2 now released: http://www.infracaninophile.co.uk/portindex/

Cheers,

Matthew

--
Dr Matthew J Seaman MA, D.Phil.   7 Priory Courtyard
 Flat 3
PGP: http://www.infracaninophile.co.uk/pgpkey Ramsgate
 Kent, CT11 9PW



signature.asc
Description: OpenPGP digital signature


Ideas upon the port infrastructure. [MOVED] was "ports/*/jpeg "Thanks a lot guys""

2009-08-06 Thread Jason J. Hellenthal
That is a very nice idea, I am sure that with a little tweaking it would turn 
out just fine.

Another nice aspect or solve for this would be getting something going like 
symbol versioning in the libs by means of the developer that supports 2 or so 
version's prior to the current lib in order to ease upgrading on any system 
rather than just FreeBSD. I am certainly no expert in that field so I can not 
comment more.

More comments ? any other takers. "Brain storming session"

On Fri, 7 Aug 2009 07:13:31 +0800
Buganini  wrote:

> The meaning of NODE_VERSION and the flag is to describe dependencies more
> detailed,
> to make it possible to do automated upgrade, instead of bump PORTREVISION by
> man.
> 
> An important thing, NODE_VERSION and the flag could be backward compatible,
> for port/package don't have NODE_VERSION, it's just 0.
> the flag could be just a '!' prefix, for example:
> !fltk-threads>=1.1.9:${PORTSDIR}/x11-toolkits/fltk-threads
> QT_COMPONENTS=  gui imageformats_run moc_build !qmake_build !uic_build
> without the flag, everything is just like how it is now.
> 
> this should be enough for cases like this jpeg case.
> For more detail, if we only save NODE_VERSION of port itself in +CONTENTS
> upgrade MUST be transactional, but for portupgrade and portmaster, exit in
> half way is usual,
> so I think to save NODE_VERSION of each dependencies is also necessary,
> or even make it part of version string, but this may be confused for
> somebody I think.
> 
> For the upgrade of perl, now we use port* -o to replace, then -r or -fr to
> rebulid required-by
> If we have
> NODE_VERSION=5.8.0 in lang/perl5.8
> NODE_VERSION=5.10.0 in lang/perl5.10
> then when we port{upgrade,master} -o lang/perl5.10 perl5.8
> we dont have to rebuild required-by manually anymore.
> 
> Furthermore, a unified target post-upgrade: is good, some ports has already
> have this,
> for example, upgrade-site-packages in lang/python
> 
> --Buganini


-- 
Jason J. Hellenthal
+1.616.403.8065
jas...@dataix.net
___
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/*/jpeg "Thanks a lot guys"

2009-08-06 Thread Buganini
The meaning of NODE_VERSION and the flag is to describe dependencies more
detailed,
to make it possible to do automated upgrade, instead of bump PORTREVISION by
man.

An important thing, NODE_VERSION and the flag could be backward compatible,
for port/package don't have NODE_VERSION, it's just 0.
the flag could be just a '!' prefix, for example:
!fltk-threads>=1.1.9:${PORTSDIR}/x11-toolkits/fltk-threads
QT_COMPONENTS=  gui imageformats_run moc_build !qmake_build !uic_build
without the flag, everything is just like how it is now.

this should be enough for cases like this jpeg case.
For more detail, if we only save NODE_VERSION of port itself in +CONTENTS
upgrade MUST be transactional, but for portupgrade and portmaster, exit in
half way is usual,
so I think to save NODE_VERSION of each dependencies is also necessary,
or even make it part of version string, but this may be confused for
somebody I think.

For the upgrade of perl, now we use port* -o to replace, then -r or -fr to
rebulid required-by
If we have
NODE_VERSION=5.8.0 in lang/perl5.8
NODE_VERSION=5.10.0 in lang/perl5.10
then when we port{upgrade,master} -o lang/perl5.10 perl5.8
we dont have to rebuild required-by manually anymore.

Furthermore, a unified target post-upgrade: is good, some ports has already
have this,
for example, upgrade-site-packages in lang/python

--Buganini
___
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/*/jpeg "Thanks a lot guys"

2009-08-06 Thread Jason J. Hellenthal

I believe unless I misunderstand what you are meaning, is the same thing that 
PORTREVISION is meant for doing. If the maintainer like what has just recently 
happened for jpeg bumps the PORTREVISION up one for every port that depends on 
jpeg then any upgrade utilities see that port as a new version and upgrade them 
happily.

PORTREVISION is the end of the package name as package-VERSION-{ , or _ 
}PORTREVISION. 

Personally I feel that adding another NODE_VERSION as your saying could 
possibly be a benefit but at this time would cause a lot of maintainer overhead 
on which that they already have. I think more of a short written policy or 
checklist system for a maintainer might be a better route. Or possibly a ticket 
system built around a  dependency checklist  that should be fulfilled before a 
commit on a newer version would happen. Even with the previous statement that 
still causes overhead in workload but eventually speeds the process up due to 
lack of errors and re-corrections that have to be made ultimately resulting in 
a higher percent of satisfied hobbyists and customers alike thus bringing in 
more revenue.

If I could be of more assistance on this matter I have great experience 
satisfying time tested analytics that speed up processes in the form of Lean 
Manufacturing also plays a role in development.

Best regards.

On Thu, 6 Aug 2009 12:46:12 +0800
Buganini  wrote:

> Recently I'm think about how to make ports easier to upgraded:
> 1) Add a NODE_VERSION in each ports' Makefile, this variable would be stored
> in +CONTENTS.
> 2) Add a volatile-meaning flag in description of dependencies
> 
> When a port, A, whose NODE_VERSION in Makefile > NODE_VERSION in +CONTENTS,
> ports that volatile'ly depends on A would be rebuilt.
> 
> Any comment is welcome
> 
> --Buganini


-- 
Jason J. Hellenthal
+1.616.403.8065
jas...@dataix.net
___
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/*/jpeg "Thanks a lot guys"

2009-08-05 Thread Buganini
Recently I'm think about how to make ports easier to upgraded:
1) Add a NODE_VERSION in each ports' Makefile, this variable would be stored
in +CONTENTS.
2) Add a volatile-meaning flag in description of dependencies

When a port, A, whose NODE_VERSION in Makefile > NODE_VERSION in +CONTENTS,
ports that volatile'ly depends on A would be rebuilt.

Any comment is welcome

--Buganini
___
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/*/jpeg "Thanks a lot guys"

2009-08-04 Thread Mel Flynn
On Sunday 02 August 2009 06:52:03 Matthew Seaman wrote:

> Similarly, programs that declare 'USE_MYSQL=NN' will have a LIB_DEPENDS
> on libmysqlclient.so.X added to their dependency mix even if they contain
> no compiled ELF binaries [See net-mgmt/cacti databases/phpmyadmin]

That's because you use USE_MYSQL when you really want to include
bsd.databases.mk and throw and error on specific mysql versions.
This could be addressed as below and for similar Mk/* files, should
it be needed:

Index: Mk/bsd.database.mk
===
RCS file: /home/ncvs/ports/Mk/bsd.database.mk,v
retrieving revision 1.37
diff -u -r1.37 bsd.database.mk
--- Mk/bsd.database.mk  21 Jul 2009 08:02:18 -  1.37
+++ Mk/bsd.database.mk  4 Aug 2009 06:59:12 -
@@ -158,7 +158,7 @@
 .if (${USE_MYSQL} == "embedded")
 BUILD_DEPENDS+=
${LOCALBASE}/lib/mysql/libmysqld.a:${PORTSDIR}/databases/mysql${MYSQL_VER}-server
 .endif
-.else
+.elif (${USE_MYSQL} != "vcheck")
 LIB_DEPENDS+=  
mysqlclient.${MYSQL${MYSQL_VER}_LIBVER}:${PORTSDIR}/databases/mysql${MYSQL_VER}-client
 .endif
 .else
Index: databases/phpmyadmin/Makefile
===
RCS file: /home/ncvs/ports/databases/phpmyadmin/Makefile,v
retrieving revision 1.108
diff -u -r1.108 Makefile
--- databases/phpmyadmin/Makefile   30 Jun 2009 19:10:53 -  1.108
+++ databases/phpmyadmin/Makefile   4 Aug 2009 07:00:04 -
@@ -14,7 +14,7 @@
 MAINTAINER=m.sea...@infracaninophile.co.uk
 COMMENT=   A set of PHP-scripts to manage MySQL over the web

-USE_MYSQL= yes
+USE_MYSQL= vcheck
 IGNORE_WITH_PHP=   4
 IGNORE_WITH_MYSQL= 323 40 41
 USE_BZIP2= yes

-- 
Mel
___
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/*/jpeg "Thanks a lot guys"

2009-08-03 Thread Matthew Seaman

Doug Barton wrote:

Garrett Cooper wrote:


Gentoo Linux (I know -- Gentoo + Linux -- we're FreeBSD... blah :P)
has a script called `revdep-rebuild' which goes and runs ldd on all
pieces of software that are installed in portage (ok, substitute ports
here). What I'm driving at is that we can use pkg_info and/or the
mtree generated files to determine what files are installed, find out
which packages have been broken up an update, then rebuild the port
and all dependencies (LIB_DEPENDS?). What say you to that :)?


I was experimenting with various scripts using ldd in parallel to my
most recent portmaster update and I think there is a problem with that
solution. If libA is linked against libB which in turn is linked
against libMISSING (such as libjpeg.so.9 for example) then ldd against
libA will show libMISSING even though that problem can be solved by
simply updating libB (i.e., without recompiling libA). This same issue
applies to the idea of running ldd against things at install time and
recording the list.


Is that sufficient?  If the ABI changes to libMISSING change its size
such that it uses a different number of 4k memory pages, doesn't that
change the load address of any subsequently loaded shlibs?  


Showing direct vs indirect linkage seems to be what 'ldd -a' does, although
I think given the above you'ld have to rebuild anything that linked, directly
or indirectly, against libMISSING.


Perhaps someone smarter than I about ldd can come up with a solution
to this, but until then I think that using ldd after the fact is a
stopgap measure to repair things if the ports infrastructure fails us.


A script for scanning the ldd(1) output would be useful for port maintainers
primarily IMHO.


In theory the dependency graphing in our existing ports infrastructure
should deal with this problem. In practice at the moment I personally
feel that we record too many "indirect" dependencies (such as libA
above) and that we would serve our users better if we stuck to direct
dependencies only (libB in the example above).

What should have happened in this case is that the ports that depend
DIRECTLY on libjpeg should have had their revisions bumped at the same
time as the update to libjpeg. Since that is what usually happens,
hopefully we can stop flogging this horse soon.


What usually seems to happen is that any port with a RUN_DEPENDS on the
port providing the shlib in question gets a portrevision bump, including
many where it makes no sense to do so.   Tracking LIB_DEPENDS would be
my choice for dealing with this problem, but as you say, there would need
to be a ports-wide review and rationalisation of LIB_DEPENDS settings. 


That said, if anyone really really wants to pursue the dependency
graphing issue further, can I suggest a new thread focused on that topic?


What's wrong with the thread we've already got?

Cheers,

Matthew

--
Dr Matthew J Seaman MA, D.Phil.   7 Priory Courtyard
 Flat 3
PGP: http://www.infracaninophile.co.uk/pgpkey Ramsgate
 Kent, CT11 9PW



signature.asc
Description: OpenPGP digital signature


Re: ports/*/jpeg "Thanks a lot guys"

2009-08-03 Thread Mel Flynn
On Saturday 01 August 2009 14:43:23 Peter Jeremy wrote:
> [I was also dismayed when I saw the bump].
>
> On 2009-Aug-01 18:33:43 +0100, Matthew Seaman
>  wrote:
> >You could, for instance, run ldd(1) against each of the files a port
> > installs and then record in /var/db/pkg/portname-1.2.3/+SHLIBS or
> > equivalently in the .tbz package tarball a sorted and uniq'd list of all
> > the shared libraries linked against.
>
> Unfortunately, this isn't sufficient because a non-trivial number of
> ports dlopen() libraries rather than directly linking against them.
> (The Xorg server is probably the most widely used culprit here).
>
> >  Or you could resolve the shlib filenames back to the ports
> >that supply them, and create a 'SHLIB_PORTS_NEEDED' variable in the port
> >Makefiles.
>
> A third approach is to more carefully recurse through the dependency
> tree: Given A depends on B depends on C, B only needs bumping if it
> LIB_DEPENDS on A and C only needs bumping if it LIB_DEPENDS on B and
> B was bumped.

Unfortunately, qt4-* ports slice this idea. Because they don't use
LIB_DEPENDS, but a version dependant RUN and BUILD depends. I've coded a
"patch-recursive" target in my Mk/bsd.local.mk that can't depend just on
LIB_DEPENDS for this very reason (I needed the target so I can debug
crashes in kde4 programs, and have gdb's `list' command working).
-- 
Mel

_LIB_DEPEND_DIRS=${LIB_DEPENDS:C,^[^:]*:([^:]*).*$,\1,}
_QT4_DEPEND_DIRS=${BUILD_DEPENDS:Mqt4-*:C,^[^:]*:([^:]*).*$,\1,}

LIB-DEPENDS-LIST= \
L="${_LIB_DEPEND_DIRS} ${_QT4_DEPEND_DIRS}";\
checked=""; \
while [ -n "$$L" ]; do  \
l="";   \
for d in $$L; do\
case $$checked in   \
$$d\ *|*\ $$d\ *|*\ $$d)\
continue;;  \
esac;   \
checked="$$checked $$d";\
if [ ! -d $$d ]; then   \
${ECHO_MSG} "${PKGNAME}: \"$$d\" non-existent -- dependency 
list incomplete" >&2; \
continue;   \
fi; \
${ECHO_CMD} $$d;\
if ! children=$$(cd $$d && ${MAKE} -V _LIB_DEPEND_DIRS); then\
${ECHO_MSG} "${PKGNAME}: \"$$d\" erroneous -- dependency list 
incomplete" >&2; \
continue;   \
fi; \
for child in $$children; do \
case "$$checked $$l" in \
$$child\ *|*\ $$child\ *|*\ $$child)\
continue;;  \
esac;   \
l="$$l $$child";\
done;   \
done;   \
L=$$l;  \
done

patch-recursive:
@for dir in ${.CURDIR} $$(${LIB-DEPENDS-LIST}); do \
echo "===> $${dir}"; \
${MAKE} -C $${dir} patch; \
done

show-libdepends-recursive:
@for dir in ${.CURDIR} $$(${LIB-DEPENDS-LIST}); do \
echo "===> $${dir}"; \
done

___
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/*/jpeg "Thanks a lot guys"

2009-08-03 Thread Doug Barton
Garrett Cooper wrote:

> Gentoo Linux (I know -- Gentoo + Linux -- we're FreeBSD... blah :P)
> has a script called `revdep-rebuild' which goes and runs ldd on all
> pieces of software that are installed in portage (ok, substitute ports
> here). What I'm driving at is that we can use pkg_info and/or the
> mtree generated files to determine what files are installed, find out
> which packages have been broken up an update, then rebuild the port
> and all dependencies (LIB_DEPENDS?). What say you to that :)?

I was experimenting with various scripts using ldd in parallel to my
most recent portmaster update and I think there is a problem with that
solution. If libA is linked against libB which in turn is linked
against libMISSING (such as libjpeg.so.9 for example) then ldd against
libA will show libMISSING even though that problem can be solved by
simply updating libB (i.e., without recompiling libA). This same issue
applies to the idea of running ldd against things at install time and
recording the list.

Perhaps someone smarter than I about ldd can come up with a solution
to this, but until then I think that using ldd after the fact is a
stopgap measure to repair things if the ports infrastructure fails us.

In theory the dependency graphing in our existing ports infrastructure
should deal with this problem. In practice at the moment I personally
feel that we record too many "indirect" dependencies (such as libA
above) and that we would serve our users better if we stuck to direct
dependencies only (libB in the example above).

What should have happened in this case is that the ports that depend
DIRECTLY on libjpeg should have had their revisions bumped at the same
time as the update to libjpeg. Since that is what usually happens,
hopefully we can stop flogging this horse soon.

That said, if anyone really really wants to pursue the dependency
graphing issue further, can I suggest a new thread focused on that topic?


hth,

Doug

-- 

This .signature sanitized for your protection

___
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/*/jpeg "Thanks a lot guys"

2009-08-03 Thread Tijl Coosemans
On Monday 03 August 2009 14:31:23 Matthew Seaman wrote:
> There was a question about apps that use dlopen() to load libraries, 
> rather than letting ld.so do the work for them.  I don't think that
> using ldd(1) will pick up any app that does that, but then again I 
> don't know if this is a widespread practice, and if it is, whether
> there is any simple way to pick out packages that need reinstallation
> because of it other than by using manually defined LIB_DEPENDS
> settings in port Makefiles.

The most common use case for dlopen are plugins and there it's the app
that controls the API, not the lib, so an update of the plugin without
recompiling the app shouldn't be a problem.

Use of dlopen to load normal libraries is rare, but an example is Wine.
IMHO it's a bug if such libs aren't listed in LIB_DEPENDS. They are
direct dependencies.
___
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/*/jpeg "Thanks a lot guys"

2009-08-03 Thread Matthew Seaman
Garrett Cooper wrote:
> On Sun, Aug 2, 2009 at 7:52 AM, Matthew
> Seaman wrote:
>> Matthew Seaman wrote:
>>
>>> Peter Jeremy wrote:
 In this specific case, p5-RT-* depends on www/rt38 depends on
 graphics/p5-GD depends on graphics/gd depends on graphics/jpeg.  When
 jpeg is bumped, gd needs to be bumped because it LIB_DEPENDS on jpeg.
 p5-GD then needs to be bumped because it LIB_DEPENDS on gd.  rt38 does
 not need to be bumped because it has no LIB_DEPENDS on p5-GD.  p5-RT-*
 does not need to be bumped because rt38 is not bumped.

 This is slighly more complex than
  cd /usr/ports && \
  for i in */*; do [ -d "$i" ] && cd "$i" && make all-depends-list ; done
 | \
  grep jpeg
 because you need to actually follow the dependency tree, but is not
 impractical.  The only issues I can see with this approach are:
 1) Mapping the shared library reported by 'make lib-depends' back to the
   port than installs it.
 2) You are relying on LIB_DEPENDS being correct:  In my general example
   above, if A is missing a LIB_DEPENDS on C, this may not be detected
   in the build process because of the implicit dependency on C via B.

 No sample script because I'm not sure of the correct approach to 1) off
 the top of my head.
>>> Doing (1) using my p5-FreeBSD-Portindex code is pretty easy.  It's about
>>> time I released an update anyhow -- I'll code up a little app that
>>> processes
>>> the LIB_DEPENDS linkages already stored in the cache and lists each port
>>> that has a LIB_DEPENDS, together with all the ports it depends on
>>> cumulatively.
>> I've got this working now -- I still need to do some more testing, update
>> documentation and stuff before I release version 2.2 of
>> p5-FreeBSD-Portindex,
>> but as a taster, here's the result of generating this on my machine just
>> now:
>>
>>  http://www.infracaninophile.co.uk/SHLIBS.bz2
>>
>> (Note that this includes the effect of a number of local settings in
>> /etc/make.conf)
>>
>> It's similar to the ports INDEX file, when decompressed.  There's one row of
>> the file for each port, and each row contains 3 fields separated by '|'
>> characters:
>>
>>  package-name|port/origin|space separated list of lib_depends port origins
>>
>> So, to extract the list of ports depending on www/jpeg:
>>
>> happy-idiot-talk:/tmp:% grep graphics/jpeg SHLIBS | cut -d '|' -f 1-2 | head
>> -10
>> accerciser-1.6.1_1|/usr/ports/accessibility/accerciser
>> at-poke-0.2.3_4|/usr/ports/accessibility/at-poke
>> at-spi-1.26.0_1|/usr/ports/accessibility/at-spi
>> dasher-4.10.1_1,2|/usr/ports/accessibility/dasher
>> gnome-mag-0.15.8|/usr/ports/accessibility/gnome-mag
>> gnopernicus-1.1.2_6|/usr/ports/accessibility/gnopernicus
>> gok-2.26.0_1,1|/usr/ports/accessibility/gok
>> kdeaccessibility-3.5.10_2|/usr/ports/accessibility/kdeaccessibility
>> kdeaccessibility-4.2.4_1|/usr/ports/accessibility/kdeaccessibility4
>> mousetweaks-2.26.3_1|/usr/ports/accessibility/mousetweaks
>>
>> Again, this has a number of deficiencies.  For instance, programs that
>> embed a perl interpreter will link against libperl.so =>
>> /usr/local/lib/perl5/5.10.0/mach/CORE/libperl.so, but none of them register
>> a LIB_DEPENDS on lang/perl5.10. [See for example net-mgmt/net-snmpd,
>> www/mod_perl2]
>>
>> Similarly, programs that declare 'USE_MYSQL=NN' will have a LIB_DEPENDS on
>> libmysqlclient.so.X added to their dependency mix even if they contain
>> no compiled ELF binaries [See net-mgmt/cacti databases/phpmyadmin]
>>
>> However, I think that the deficiencies are not too intractable to fix,
>> and this approach shows some promise.
> 
> There actually may be a much easier solution to this problem.
> 
> Gentoo Linux (I know -- Gentoo + Linux -- we're FreeBSD... blah :P)
> has a script called `revdep-rebuild' which goes and runs ldd on all
> pieces of software that are installed in portage (ok, substitute ports
> here). What I'm driving at is that we can use pkg_info and/or the
> mtree generated files to determine what files are installed, find out
> which packages have been broken up an update, then rebuild the port
> and all dependencies (LIB_DEPENDS?). What say you to that :)?
> 
> If no one cares about the language, I can whip up a really quick
> python script which solves this problem and we can migrate to a more
> longterm solution in bourne shell if desired.

If it's going to scan *all* of the installed files known to the pkg 
database to identify packages that depend on a particular shared library
then it's going to take a pretty long time to run on a typical desktop
package load.

It would make sense to scan the installed files at package installation
time and cache the result for each installed package, which is pretty 
much where I was at with the Bourne shell script I posted up-thread.

There was a question about apps that use dlopen() to load libraries, 
rather than letting ld.so do the work for them.  I don't think that
usin

Re: ports/*/jpeg "Thanks a lot guys"

2009-08-03 Thread Emanuel Haupt
> On Sun, Aug 2, 2009 at 7:52 AM, Matthew
> Seaman wrote:
> > Matthew Seaman wrote:
> >
> >> Peter Jeremy wrote:
> >>>
> >>> In this specific case, p5-RT-* depends on www/rt38 depends on
> >>> graphics/p5-GD depends on graphics/gd depends on graphics/jpeg.
> >>>  When jpeg is bumped, gd needs to be bumped because it
> >>> LIB_DEPENDS on jpeg. p5-GD then needs to be bumped because it
> >>> LIB_DEPENDS on gd.  rt38 does not need to be bumped because it
> >>> has no LIB_DEPENDS on p5-GD.  p5-RT-* does not need to be bumped
> >>> because rt38 is not bumped.
> >>>
> >>> This is slighly more complex than
> >>>  cd /usr/ports && \
> >>>  for i in */*; do [ -d "$i" ] && cd "$i" && make
> >>> all-depends-list ; done
> >>> | \
> >>>  grep jpeg
> >>> because you need to actually follow the dependency tree, but is
> >>> not impractical.  The only issues I can see with this approach
> >>> are:
> >>> 1) Mapping the shared library reported by 'make lib-depends' back
> >>> to the port than installs it.
> >>> 2) You are relying on LIB_DEPENDS being correct:  In my general
> >>> example above, if A is missing a LIB_DEPENDS on C, this may not
> >>> be detected in the build process because of the implicit
> >>> dependency on C via B.
> >>>
> >>> No sample script because I'm not sure of the correct approach to
> >>> 1) off the top of my head.
> >
> >> Doing (1) using my p5-FreeBSD-Portindex code is pretty easy.  It's
> >> about time I released an update anyhow -- I'll code up a little
> >> app that processes
> >> the LIB_DEPENDS linkages already stored in the cache and lists
> >> each port that has a LIB_DEPENDS, together with all the ports it
> >> depends on cumulatively.
> >
> > I've got this working now -- I still need to do some more testing,
> > update documentation and stuff before I release version 2.2 of
> > p5-FreeBSD-Portindex,
> > but as a taster, here's the result of generating this on my machine
> > just now:
> >
> >  http://www.infracaninophile.co.uk/SHLIBS.bz2
> >
> > (Note that this includes the effect of a number of local settings in
> > /etc/make.conf)
> >
> > It's similar to the ports INDEX file, when decompressed.  There's
> > one row of the file for each port, and each row contains 3 fields
> > separated by '|' characters:
> >
> >  package-name|port/origin|space separated list of lib_depends port
> > origins
> >
> > So, to extract the list of ports depending on www/jpeg:
> >
> > happy-idiot-talk:/tmp:% grep graphics/jpeg SHLIBS | cut -d '|' -f
> > 1-2 | head -10
> > accerciser-1.6.1_1|/usr/ports/accessibility/accerciser
> > at-poke-0.2.3_4|/usr/ports/accessibility/at-poke
> > at-spi-1.26.0_1|/usr/ports/accessibility/at-spi
> > dasher-4.10.1_1,2|/usr/ports/accessibility/dasher
> > gnome-mag-0.15.8|/usr/ports/accessibility/gnome-mag
> > gnopernicus-1.1.2_6|/usr/ports/accessibility/gnopernicus
> > gok-2.26.0_1,1|/usr/ports/accessibility/gok
> > kdeaccessibility-3.5.10_2|/usr/ports/accessibility/kdeaccessibility
> > kdeaccessibility-4.2.4_1|/usr/ports/accessibility/kdeaccessibility4
> > mousetweaks-2.26.3_1|/usr/ports/accessibility/mousetweaks
> >
> > Again, this has a number of deficiencies.  For instance, programs
> > that embed a perl interpreter will link against libperl.so =>
> > /usr/local/lib/perl5/5.10.0/mach/CORE/libperl.so, but none of them
> > register a LIB_DEPENDS on lang/perl5.10. [See for example
> > net-mgmt/net-snmpd, www/mod_perl2]
> >
> > Similarly, programs that declare 'USE_MYSQL=NN' will have a
> > LIB_DEPENDS on libmysqlclient.so.X added to their dependency mix
> > even if they contain no compiled ELF binaries [See net-mgmt/cacti
> > databases/phpmyadmin]
> >
> > However, I think that the deficiencies are not too intractable to
> > fix, and this approach shows some promise.
> 
> There actually may be a much easier solution to this problem.
> 
> Gentoo Linux (I know -- Gentoo + Linux -- we're FreeBSD... blah :P)
> has a script called `revdep-rebuild' which goes and runs ldd on all
> pieces of software that are installed in portage (ok, substitute ports
> here). What I'm driving at is that we can use pkg_info and/or the
> mtree generated files to determine what files are installed, find out
> which packages have been broken up an update, then rebuild the port
> and all dependencies (LIB_DEPENDS?). What say you to that :)?

sysutils/bsdadminscripts provides a script called pkg_libchk which does
a similar thing.

Emanuel


___
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/*/jpeg "Thanks a lot guys"

2009-08-03 Thread Garrett Cooper
On Sun, Aug 2, 2009 at 7:52 AM, Matthew
Seaman wrote:
> Matthew Seaman wrote:
>
>> Peter Jeremy wrote:
>>>
>>> In this specific case, p5-RT-* depends on www/rt38 depends on
>>> graphics/p5-GD depends on graphics/gd depends on graphics/jpeg.  When
>>> jpeg is bumped, gd needs to be bumped because it LIB_DEPENDS on jpeg.
>>> p5-GD then needs to be bumped because it LIB_DEPENDS on gd.  rt38 does
>>> not need to be bumped because it has no LIB_DEPENDS on p5-GD.  p5-RT-*
>>> does not need to be bumped because rt38 is not bumped.
>>>
>>> This is slighly more complex than
>>>  cd /usr/ports && \
>>>  for i in */*; do [ -d "$i" ] && cd "$i" && make all-depends-list ; done
>>> | \
>>>  grep jpeg
>>> because you need to actually follow the dependency tree, but is not
>>> impractical.  The only issues I can see with this approach are:
>>> 1) Mapping the shared library reported by 'make lib-depends' back to the
>>>   port than installs it.
>>> 2) You are relying on LIB_DEPENDS being correct:  In my general example
>>>   above, if A is missing a LIB_DEPENDS on C, this may not be detected
>>>   in the build process because of the implicit dependency on C via B.
>>>
>>> No sample script because I'm not sure of the correct approach to 1) off
>>> the top of my head.
>
>> Doing (1) using my p5-FreeBSD-Portindex code is pretty easy.  It's about
>> time I released an update anyhow -- I'll code up a little app that
>> processes
>> the LIB_DEPENDS linkages already stored in the cache and lists each port
>> that has a LIB_DEPENDS, together with all the ports it depends on
>> cumulatively.
>
> I've got this working now -- I still need to do some more testing, update
> documentation and stuff before I release version 2.2 of
> p5-FreeBSD-Portindex,
> but as a taster, here's the result of generating this on my machine just
> now:
>
>  http://www.infracaninophile.co.uk/SHLIBS.bz2
>
> (Note that this includes the effect of a number of local settings in
> /etc/make.conf)
>
> It's similar to the ports INDEX file, when decompressed.  There's one row of
> the file for each port, and each row contains 3 fields separated by '|'
> characters:
>
>  package-name|port/origin|space separated list of lib_depends port origins
>
> So, to extract the list of ports depending on www/jpeg:
>
> happy-idiot-talk:/tmp:% grep graphics/jpeg SHLIBS | cut -d '|' -f 1-2 | head
> -10
> accerciser-1.6.1_1|/usr/ports/accessibility/accerciser
> at-poke-0.2.3_4|/usr/ports/accessibility/at-poke
> at-spi-1.26.0_1|/usr/ports/accessibility/at-spi
> dasher-4.10.1_1,2|/usr/ports/accessibility/dasher
> gnome-mag-0.15.8|/usr/ports/accessibility/gnome-mag
> gnopernicus-1.1.2_6|/usr/ports/accessibility/gnopernicus
> gok-2.26.0_1,1|/usr/ports/accessibility/gok
> kdeaccessibility-3.5.10_2|/usr/ports/accessibility/kdeaccessibility
> kdeaccessibility-4.2.4_1|/usr/ports/accessibility/kdeaccessibility4
> mousetweaks-2.26.3_1|/usr/ports/accessibility/mousetweaks
>
> Again, this has a number of deficiencies.  For instance, programs that
> embed a perl interpreter will link against libperl.so =>
> /usr/local/lib/perl5/5.10.0/mach/CORE/libperl.so, but none of them register
> a LIB_DEPENDS on lang/perl5.10. [See for example net-mgmt/net-snmpd,
> www/mod_perl2]
>
> Similarly, programs that declare 'USE_MYSQL=NN' will have a LIB_DEPENDS on
> libmysqlclient.so.X added to their dependency mix even if they contain
> no compiled ELF binaries [See net-mgmt/cacti databases/phpmyadmin]
>
> However, I think that the deficiencies are not too intractable to fix,
> and this approach shows some promise.

There actually may be a much easier solution to this problem.

Gentoo Linux (I know -- Gentoo + Linux -- we're FreeBSD... blah :P)
has a script called `revdep-rebuild' which goes and runs ldd on all
pieces of software that are installed in portage (ok, substitute ports
here). What I'm driving at is that we can use pkg_info and/or the
mtree generated files to determine what files are installed, find out
which packages have been broken up an update, then rebuild the port
and all dependencies (LIB_DEPENDS?). What say you to that :)?

If no one cares about the language, I can whip up a really quick
python script which solves this problem and we can migrate to a more
longterm solution in bourne shell if desired.

Thanks,
-Garrett
___
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/*/jpeg "Thanks a lot guys"

2009-08-02 Thread Matthew Seaman

Matthew Seaman wrote:

Peter Jeremy wrote: 

In this specific case, p5-RT-* depends on www/rt38 depends on
graphics/p5-GD depends on graphics/gd depends on graphics/jpeg.  When
jpeg is bumped, gd needs to be bumped because it LIB_DEPENDS on jpeg.
p5-GD then needs to be bumped because it LIB_DEPENDS on gd.  rt38 does
not need to be bumped because it has no LIB_DEPENDS on p5-GD.  p5-RT-*
does not need to be bumped because rt38 is not bumped.

This is slighly more complex than
  cd /usr/ports && \
  for i in */*; do [ -d "$i" ] && cd "$i" && make all-depends-list ; done | \
  grep jpeg
because you need to actually follow the dependency tree, but is not
impractical.  The only issues I can see with this approach are:
1) Mapping the shared library reported by 'make lib-depends' back to the
   port than installs it.
2) You are relying on LIB_DEPENDS being correct:  In my general example
   above, if A is missing a LIB_DEPENDS on C, this may not be detected
   in the build process because of the implicit dependency on C via B.

No sample script because I'm not sure of the correct approach to 1) off
the top of my head.



Doing (1) using my p5-FreeBSD-Portindex code is pretty easy.  It's about
time I released an update anyhow -- I'll code up a little app that 
processes

the LIB_DEPENDS linkages already stored in the cache and lists each port
that has a LIB_DEPENDS, together with all the ports it depends on 
cumulatively.


I've got this working now -- I still need to do some more testing, update
documentation and stuff before I release version 2.2 of p5-FreeBSD-Portindex,
but as a taster, here's the result of generating this on my machine just now:

  http://www.infracaninophile.co.uk/SHLIBS.bz2

(Note that this includes the effect of a number of local settings in
/etc/make.conf)

It's similar to the ports INDEX file, when decompressed.  There's one row of
the file for each port, and each row contains 3 fields separated by '|' 
characters:


  package-name|port/origin|space separated list of lib_depends port origins

So, to extract the list of ports depending on www/jpeg:

happy-idiot-talk:/tmp:% grep graphics/jpeg SHLIBS | cut -d '|' -f 1-2 | head -10
accerciser-1.6.1_1|/usr/ports/accessibility/accerciser
at-poke-0.2.3_4|/usr/ports/accessibility/at-poke
at-spi-1.26.0_1|/usr/ports/accessibility/at-spi
dasher-4.10.1_1,2|/usr/ports/accessibility/dasher
gnome-mag-0.15.8|/usr/ports/accessibility/gnome-mag
gnopernicus-1.1.2_6|/usr/ports/accessibility/gnopernicus
gok-2.26.0_1,1|/usr/ports/accessibility/gok
kdeaccessibility-3.5.10_2|/usr/ports/accessibility/kdeaccessibility
kdeaccessibility-4.2.4_1|/usr/ports/accessibility/kdeaccessibility4
mousetweaks-2.26.3_1|/usr/ports/accessibility/mousetweaks

Again, this has a number of deficiencies.  For instance, programs that
embed a perl interpreter will link against libperl.so => 
/usr/local/lib/perl5/5.10.0/mach/CORE/libperl.so, but none of them register
a LIB_DEPENDS on lang/perl5.10. [See for example net-mgmt/net-snmpd,
www/mod_perl2]

Similarly, programs that declare 'USE_MYSQL=NN' will have a LIB_DEPENDS 
on libmysqlclient.so.X added to their dependency mix even if they contain

no compiled ELF binaries [See net-mgmt/cacti databases/phpmyadmin]

However, I think that the deficiencies are not too intractable to fix,
and this approach shows some promise.

Cheers,

Matthew

--
Dr Matthew J Seaman MA, D.Phil.   7 Priory Courtyard
 Flat 3
PGP: http://www.infracaninophile.co.uk/pgpkey Ramsgate
 Kent, CT11 9PW



signature.asc
Description: OpenPGP digital signature


Re: ports/*/jpeg "Thanks a lot guys"

2009-08-02 Thread Matthew Seaman

Peter Jeremy wrote:

[I was also dismayed when I saw the bump].

On 2009-Aug-01 18:33:43 +0100, Matthew Seaman  
wrote:

You could, for instance, run ldd(1) against each of the files a port installs
and then record in /var/db/pkg/portname-1.2.3/+SHLIBS or equivalently in the
.tbz package tarball a sorted and uniq'd list of all the shared libraries
linked against.


Unfortunately, this isn't sufficient because a non-trivial number of
ports dlopen() libraries rather than directly linking against them.
(The Xorg server is probably the most widely used culprit here).


Yes.  There's also a problem with ports like firefox and openoffice that
dynamically link against shared libraries not on the usual LD_LIBRARY_PATH.
Still, what I wrote is still useful as a tool for providing a starting point
on recording shared library dependencies.


 Or you could resolve the shlib filenames back to the ports
that supply them, and create a 'SHLIB_PORTS_NEEDED' variable in the port
Makefiles.


A third approach is to more carefully recurse through the dependency
tree: Given A depends on B depends on C, B only needs bumping if it
LIB_DEPENDS on A and C only needs bumping if it LIB_DEPENDS on B and
B was bumped.


I considered this, but didn't think it would be as complete as using ldd(1).
Maybe I was wrong there -- but I've still a nagging feeling that this will miss
out some cases.  Also, LIB_DEPENDS only covers the first generation dependencies
-- if your shared library itself depends on another shared library, that data
would have to be accounted for by recursing through the dependency tree. (Your
case (2) below)

This is all doable: INDEX generation does virtually the same thing with
BUILD_DEPENDS and RUN_DEPENDS.  In fact, adding another field to the INDEX
showing shlib dependencies would be a handy way of making the data accessible.


In this specific case, p5-RT-* depends on www/rt38 depends on
graphics/p5-GD depends on graphics/gd depends on graphics/jpeg.  When
jpeg is bumped, gd needs to be bumped because it LIB_DEPENDS on jpeg.
p5-GD then needs to be bumped because it LIB_DEPENDS on gd.  rt38 does
not need to be bumped because it has no LIB_DEPENDS on p5-GD.  p5-RT-*
does not need to be bumped because rt38 is not bumped.

This is slighly more complex than
  cd /usr/ports && \
  for i in */*; do [ -d "$i" ] && cd "$i" && make all-depends-list ; done | \
  grep jpeg
because you need to actually follow the dependency tree, but is not
impractical.  The only issues I can see with this approach are:
1) Mapping the shared library reported by 'make lib-depends' back to the
   port than installs it.
2) You are relying on LIB_DEPENDS being correct:  In my general example
   above, if A is missing a LIB_DEPENDS on C, this may not be detected
   in the build process because of the implicit dependency on C via B.

No sample script because I'm not sure of the correct approach to 1) off
the top of my head.


Doing (1) using my p5-FreeBSD-Portindex code is pretty easy.  It's about
time I released an update anyhow -- I'll code up a little app that processes
the LIB_DEPENDS linkages already stored in the cache and lists each port
that has a LIB_DEPENDS, together with all the ports it depends on cumulatively.

Cheers,

Matthew

--
Dr Matthew J Seaman MA, D.Phil.   7 Priory Courtyard
 Flat 3
PGP: http://www.infracaninophile.co.uk/pgpkey Ramsgate
 Kent, CT11 9PW



signature.asc
Description: OpenPGP digital signature


Re: ports/*/jpeg "Thanks a lot guys"

2009-08-01 Thread Peter Jeremy
[I was also dismayed when I saw the bump].

On 2009-Aug-01 18:33:43 +0100, Matthew Seaman  
wrote:
>You could, for instance, run ldd(1) against each of the files a port installs
>and then record in /var/db/pkg/portname-1.2.3/+SHLIBS or equivalently in the
>.tbz package tarball a sorted and uniq'd list of all the shared libraries
>linked against.

Unfortunately, this isn't sufficient because a non-trivial number of
ports dlopen() libraries rather than directly linking against them.
(The Xorg server is probably the most widely used culprit here).

>  Or you could resolve the shlib filenames back to the ports
>that supply them, and create a 'SHLIB_PORTS_NEEDED' variable in the port
>Makefiles.

A third approach is to more carefully recurse through the dependency
tree: Given A depends on B depends on C, B only needs bumping if it
LIB_DEPENDS on A and C only needs bumping if it LIB_DEPENDS on B and
B was bumped.

In this specific case, p5-RT-* depends on www/rt38 depends on
graphics/p5-GD depends on graphics/gd depends on graphics/jpeg.  When
jpeg is bumped, gd needs to be bumped because it LIB_DEPENDS on jpeg.
p5-GD then needs to be bumped because it LIB_DEPENDS on gd.  rt38 does
not need to be bumped because it has no LIB_DEPENDS on p5-GD.  p5-RT-*
does not need to be bumped because rt38 is not bumped.

This is slighly more complex than
  cd /usr/ports && \
  for i in */*; do [ -d "$i" ] && cd "$i" && make all-depends-list ; done | \
  grep jpeg
because you need to actually follow the dependency tree, but is not
impractical.  The only issues I can see with this approach are:
1) Mapping the shared library reported by 'make lib-depends' back to the
   port than installs it.
2) You are relying on LIB_DEPENDS being correct:  In my general example
   above, if A is missing a LIB_DEPENDS on C, this may not be detected
   in the build process because of the implicit dependency on C via B.

No sample script because I'm not sure of the correct approach to 1) off
the top of my head.

-- 
Peter Jeremy


pgpPkGGNXQY2A.pgp
Description: PGP signature


Re: ports/*/jpeg "Thanks a lot guys"

2009-08-01 Thread Matthew Seaman

Dirk Meyer wrote:

Hallo Matthew Seaman,


The OP does have a valid point though.  I just got an e-mail from Freshpo=
rts
saying that a bunch of ports I maintain had had PORTREVISION bumps becaus=
e of
the jpeg update.  Which is all fine and dandy, except that these were the=
=20
www/p5-RT-* extension modules for RT.  First of all, they are pure perl: =
there's
no object linkage with the jpeg shlibs at all.  Secondly, they have nothi=
ng
to do with manipulating jpeg data in any way, shape or form.  One of thei=
r
dependencies links against libjpeg: that's it.


This may be, but the port has "libjpeg" as dependency listed.

ports/www/p5-RT-Authen-ExternalAuth$ make all-depends-list | grep jpeg
/usr/ports/graphics/jpeg

ports/www/p5-RT-Extension-SLA$ make all-depends-list | grep jpeg
/usr/ports/graphics/jpeg


Yeah.  That's because p5-RT-* {run-,build-} depend on www/rt38, and www/rt38
depends on graphics/p5-GD, which depends on graphics/gd, which depends on 
graphics/jpeg.


Of that whole dependency chain only graphics/gd and graphics/p5-GD need
a PORTREVISION bump due to the libjpeg update.


Sorry I had no way to detect if this dependecy is not needed.
I build the index with "EXPLICIT_PACKAGE_DEPENDS=yes",
which reduced the number of ports affected alot.

Sadly further work on this general problem has been suspended.

I hoped the current package tools where up to the task,
making this bump obsolete, but I have been prooven wrong.



Absolutely.  I don't what to come over as if I'm complaining about ports
I maintain in particular -- it's the general problem of finding ports that
are affected by a shlib bump which I think needs a better solution.

It seems to me that the necessary data to construct an appropriate inverse
dependency graph is simply not extracted anywhere, so port management tools
just don't have the wherewithal they need to solve this problem.

You could, for instance, run ldd(1) against each of the files a port installs
and then record in /var/db/pkg/portname-1.2.3/+SHLIBS or equivalently in the
.tbz package tarball a sorted and uniq'd list of all the shared libraries
linked against.  Or you could resolve the shlib filenames back to the ports
that supply them, and create a 'SHLIB_PORTS_NEEDED' variable in the port
Makefiles.  Hmmm  The attached script is a bit slow, and it doesn't 
cope with linux executables but it shows the general idea.  eg:


% ./shlib-ports-needed.sh php5-gd-5.2.10 
print/freetype2

graphics/jpeg
x11/libX11
x11/libXau
x11/libXdmcp
x11/libXpm
x11/libxcb
graphics/png
devel/t1lib

Cheers,

Matthew

--
Dr Matthew J Seaman MA, D.Phil.   7 Priory Courtyard
 Flat 3
PGP: http://www.infracaninophile.co.uk/pgpkey Ramsgate
 Kent, CT11 9PW
#!/bin/sh

# @(#) $Id$
#
# Given a pkgname scan all of the files installed by the package,
# and create a list of all of the shlibs linked to by any executables
# or shlibs from that package.
#

PATH=/usr/bin:/bin:/usr/sbin:/sbin ; export PATH
IFS='   
' ; export IFS
umask 022

pkgname=${1?'Please supply the name of an installed package'}
lddcmd=""

TMP=$( mktemp -t "$( basename $0 ).XX" )
if [ $? -ne 0 ]; then
echo "$0: FATAL Can't create teporary file"
exit 1
fi
trap "rm $TMP && exit" EXIT INT KILL

for f in $( pkg_info -qLx $pkgname ) ; do
ldd -f "%p\n" $f 2>/dev/null >> $TMP
done

pkglist=$( for f in $( sort -u $TMP ) ; do pkg_info -qW $f ; done | sort -u )

for f in $pkglist ; do
pkg_info -qo $f
done

#
# That's All Folks!
#


signature.asc
Description: OpenPGP digital signature


Re: ports/*/jpeg "Thanks a lot guys"

2009-08-01 Thread RW
On Sat, 01 Aug 2009 10:10:17 +0100
Matthew Seaman  wrote:

> The OP does have a valid point though.  I just got an e-mail from
> Freshports saying that a bunch of ports I maintain had had
> PORTREVISION bumps because of the jpeg update.  Which is all fine and
> dandy, except that these were the www/p5-RT-* extension modules for
> RT. 
> ...

Actually, I think his point was that the ports were bumped too long
after the jpeg update, when people had already done the recursive
upgrade.
___
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/*/jpeg "Thanks a lot guys"

2009-08-01 Thread Dirk Meyer
Hallo Matthew Seaman,

> The OP does have a valid point though.  I just got an e-mail from Freshpo=
> rts
> saying that a bunch of ports I maintain had had PORTREVISION bumps becaus=
> e of
> the jpeg update.  Which is all fine and dandy, except that these were the=
> =20
> www/p5-RT-* extension modules for RT.  First of all, they are pure perl: =
> there's
> no object linkage with the jpeg shlibs at all.  Secondly, they have nothi=
> ng
> to do with manipulating jpeg data in any way, shape or form.  One of thei=
> r
> dependencies links against libjpeg: that's it.

This may be, but the port has "libjpeg" as dependency listed.

ports/www/p5-RT-Authen-ExternalAuth$ make all-depends-list | grep jpeg
/usr/ports/graphics/jpeg

ports/www/p5-RT-Extension-SLA$ make all-depends-list | grep jpeg
/usr/ports/graphics/jpeg

Sorry I had no way to detect if this dependecy is not needed.
I build the index with "EXPLICIT_PACKAGE_DEPENDS=yes",
which reduced the number of ports affected alot.

Sadly further work on this general problem has been suspended.

I hoped the current package tools where up to the task,
making this bump obsolete, but I have been prooven wrong.

kind regards Dirk

- Dirk Meyer, Im Grund 4, 34317 Habichtswald, Germany
- [dirk.me...@dinoex.sub.org],[dirk.me...@guug.de],[din...@freebsd.org]
http://people.freebsd.org/~dinoex/errorlogs/
___
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/*/jpeg "Thanks a lot guys"

2009-08-01 Thread Jerry
On Fri, 31 Jul 2009 19:36:36 +0200
Erik Trulsson  wrote:

> On Fri, Jul 31, 2009 at 12:12:49PM -0400, Jason J. Hellenthal wrote:
> > 
> > Now that I have finally upgraded my system in full from the last
> > mix-up with jpeg, You guys have bumped up every PORTREVISION that
> > depends on jpeg "Great real great" Now I get to spend another three
> > days fixing up some more packages and rebuilding about 800+ ports.
> > 
> > Thanks a whole lot.  
> 
> Nobody is forcing you to rebuild your ports just because the
> PORTREVISION was bumped.  If everything works fine for you there is
> actually no good reason at all to do so.

Sorry, but from personal experience in similar situations, sooner
or later it will come back to bite you in the ass. Better to use
something like: 'portmanager -u -p' now and get it over with than wait
until the least opportunistic time arrives for something to fail. Then
again, it is your system.

-- 
Jerry
ges...@yahoo.com

RUGGED: Too heavy to lift.
___
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/*/jpeg "Thanks a lot guys"

2009-08-01 Thread Matthew Seaman

Erik Trulsson wrote:

On Fri, Jul 31, 2009 at 12:12:49PM -0400, Jason J. Hellenthal wrote:

Now that I have finally upgraded my system in full from the last mix-up
with jpeg, You guys have bumped up every PORTREVISION that depends on jpeg
"Great real great" Now I get to spend another three days fixing up some
more packages and rebuilding about 800+ ports.

Thanks a whole lot.


Nobody is forcing you to rebuild your ports just because the PORTREVISION
was bumped.  If everything works fine for you there is actually no good
reason at all to do so.


The OP does have a valid point though.  I just got an e-mail from Freshports
saying that a bunch of ports I maintain had had PORTREVISION bumps because of
the jpeg update.  Which is all fine and dandy, except that these were the 
www/p5-RT-* extension modules for RT.  First of all, they are pure perl: there's

no object linkage with the jpeg shlibs at all.  Secondly, they have nothing
to do with manipulating jpeg data in any way, shape or form.  One of their
dependencies links against libjpeg: that's it.

Blanket modification of PORTREVISION for everything that can depend on a shlib
which has had an ABI version bump is certainly effective, but it seems too much
of a blunt instrument to me.  You don't need a revision bump for dependencies
that install no ELF format executables, shlibs or similar.  Detecting what ports
install ELF executables is not too hard -- I submitted ports/129210 which should
do the job, although I was thinking more along the lines of factoring out ports
that are architecture independent and only building them once on the package 
build
cluster when I submitted that.  Needs some work on capturing the output for use 
by
port comitters / maintainers

Cheers,

	Matthew  


--
Dr Matthew J Seaman MA, D.Phil.   7 Priory Courtyard
 Flat 3
PGP: http://www.infracaninophile.co.uk/pgpkey Ramsgate
 Kent, CT11 9PW



signature.asc
Description: OpenPGP digital signature


Re: ports/*/jpeg "Thanks a lot guys"

2009-07-31 Thread Jason J. Hellenthal
On Fri, 31 Jul 2009 16:53:16 -0500
"Jeremy Messenger"  wrote:

> On Fri, 31 Jul 2009 12:36:36 -0500, Erik Trulsson   
> wrote:
> 
> > On Fri, Jul 31, 2009 at 12:12:49PM -0400, Jason J. Hellenthal wrote:
> >>
> >> Now that I have finally upgraded my system in full from the last mix-up
> >> with jpeg, You guys have bumped up every PORTREVISION that depends on  
> >> jpeg
> >> "Great real great" Now I get to spend another three days fixing up some
> >> more packages and rebuilding about 800+ ports.
> >>
> >> Thanks a whole lot.
> >
> > Nobody is forcing you to rebuild your ports just because the PORTREVISION
> > was bumped.  If everything works fine for you there is actually no good
> > reason at all to do so.
> 

So now the implication becomes that everyone should resort to manual checking 
of port versions and upgrade each port manually from here on out ?. Because if 
that is going to happen then eventually someone or a amateur for that matter is 
going to manually check their ports and come across an update they need and 
then it will update hand-in-hand every port that depends on libjpeg just to 
satisfy itself.

Am I wrong ? is this not why portupgrade and portmaster were created so this 
could be done autonomously ?

Don't get me wrong but I have been very involved in this upgrade that slipped 
into my systems from the 19th and it is frustrating when a rather circumvented 
actions consequences were not well thought out and gets repeated again for a 
third time.

Please don't take this as a list bash or a personal matter, but I believe this 
needs to be discussed so it could be prevented in the future.

Maybe a policy change on library bumps ? that gets more developers involved so 
the process is less likely to cause administration overhead. Or a policy 
stating that if your ports lib is bumped you should also bump all PORTREVISIONS 
that depend on it at the time it is committed ?.

That is up for discussion and these are only thoughts but they are thoughts 
with a new user community in mind.

Best regards.
I am not on this list: please CC me in your replies.


> Yes, but how can you tell if there is newer version? The pkg_version and  
> pkgversion don't tell you that it's PORTREVISION or actually newer  
> version. What about when we run 'port* -a'? Took about two weeks to get  
> PORTREVISION bump isn't right at all.
> 
> Cheers,
> Mezz
> 
> 
> -- 
> me...@cox.net  -  m...@freebsd.org
> FreeBSD GNOME Team
> http://www.FreeBSD.org/gnome/  -  gn...@freebsd.org
Thanks Mezz

-- 
Jason J. Hellenthal
+1.616.403.8065
jas...@dataix.net
___
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/*/jpeg "Thanks a lot guys"

2009-07-31 Thread Freddie Cash
On Fri, Jul 31, 2009 at 2:53 PM, Jeremy Messenger  wrote:

> On Fri, 31 Jul 2009 12:36:36 -0500, Erik Trulsson 
> wrote:
>
>  On Fri, Jul 31, 2009 at 12:12:49PM -0400, Jason J. Hellenthal wrote:
>>
>>>
>>> Now that I have finally upgraded my system in full from the last mix-up
>>> with jpeg, You guys have bumped up every PORTREVISION that depends on
>>> jpeg
>>> "Great real great" Now I get to spend another three days fixing up some
>>> more packages and rebuilding about 800+ ports.
>>>
>>> Thanks a whole lot.
>>>
>>
>> Nobody is forcing you to rebuild your ports just because the PORTREVISION
>> was bumped.  If everything works fine for you there is actually no good
>> reason at all to do so.
>>
>
> Yes, but how can you tell if there is newer version? The pkg_version and
> pkgversion don't tell you that it's PORTREVISION or actually newer version.
> What about when we run 'port* -a'? Took about two weeks to get PORTREVISION
> bump isn't right at all.
>

Yes it does.  If the version numbers are the same, but the _X number is
different, then it's a PORTREVISION change only.

2.4.1_1 vs 2.4.1_2 is a port revision bump.

2.4.1_1 vs 2.4.2 is a version change.

X.Y.Z are the PORTVERSION.
_A is the PORTREVISION
,B is the PORTEPOCH

Giving a total version string of X.Y.Z_A,B

-- 
Freddie Cash
fjwc...@gmail.com
___
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/*/jpeg "Thanks a lot guys"

2009-07-31 Thread Jeremy Messenger
On Fri, 31 Jul 2009 12:36:36 -0500, Erik Trulsson   
wrote:



On Fri, Jul 31, 2009 at 12:12:49PM -0400, Jason J. Hellenthal wrote:


Now that I have finally upgraded my system in full from the last mix-up
with jpeg, You guys have bumped up every PORTREVISION that depends on  
jpeg

"Great real great" Now I get to spend another three days fixing up some
more packages and rebuilding about 800+ ports.

Thanks a whole lot.


Nobody is forcing you to rebuild your ports just because the PORTREVISION
was bumped.  If everything works fine for you there is actually no good
reason at all to do so.


Yes, but how can you tell if there is newer version? The pkg_version and  
pkgversion don't tell you that it's PORTREVISION or actually newer  
version. What about when we run 'port* -a'? Took about two weeks to get  
PORTREVISION bump isn't right at all.


Cheers,
Mezz


--
me...@cox.net  -  m...@freebsd.org
FreeBSD GNOME Team
http://www.FreeBSD.org/gnome/  -  gn...@freebsd.org
___
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/*/jpeg "Thanks a lot guys"

2009-07-31 Thread Erik Trulsson
On Fri, Jul 31, 2009 at 12:12:49PM -0400, Jason J. Hellenthal wrote:
> 
> Now that I have finally upgraded my system in full from the last mix-up
> with jpeg, You guys have bumped up every PORTREVISION that depends on jpeg
> "Great real great" Now I get to spend another three days fixing up some
> more packages and rebuilding about 800+ ports.
> 
> Thanks a whole lot.

Nobody is forcing you to rebuild your ports just because the PORTREVISION
was bumped.  If everything works fine for you there is actually no good
reason at all to do so.




-- 

Erik Trulsson
ertr1...@student.uu.se
___
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"


ports/*/jpeg "Thanks a lot guys"

2009-07-31 Thread Jason J. Hellenthal

Now that I have finally upgraded my system in full from the last mix-up with 
jpeg, You guys have bumped up every PORTREVISION that depends on jpeg "Great 
real great" Now I get to spend another three days fixing up some more packages 
and rebuilding about 800+ ports.

Thanks a whole lot.

-- 
Jason J. Hellenthal
+1.616.403.8065
jas...@dataix.net
___
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"