Commit Graph

307 Commits

Author SHA1 Message Date
steven
11da5ccdac more use of references
go for it espie@
2008-11-09 12:29:54 +00:00
steven
68831eca93 - use reference in process_deplibs and a few other places
- avoid split/join ' ' dance
- prettier debug output

ok espie@
2008-11-09 10:30:54 +00:00
espie
15242ec79f oops2, committed stuff that's not ready yet along 2008-11-08 09:43:43 +00:00
espie
10a17a5002 oops 2008-11-08 09:41:25 +00:00
espie
e2c1942470 finish switching parse_linkargs and resolve_la to lists,
stop the join ' ', split /\s+/ dance.

use debug(&) to avoid computing debug messages when not needed.
(and cleanup some old variables that no longer exist)

okay steven@
2008-11-07 20:22:39 +00:00
espie
7408363065 tweak a few things:
- cache more stuff to avoid calling internal_resolve_la
- add a tracing facility
- start cleaning up more stuff.

okay steven@
2008-11-03 21:11:58 +00:00
espie
c17c566a6b Exec class to run things.
LaLoFile class to read/write la and lo files.
2008-11-01 13:06:16 +00:00
espie
131635f281 simplify parse_file a bit, okay steven@ 2008-10-31 10:28:05 +00:00
steven
bac6de4a16 add support for -export-symbols-regex, seems to work 2008-10-30 23:53:28 +00:00
steven
4cfa4bc828 support -export-symbols 2008-10-30 22:22:34 +00:00
steven
cdef84d3bb same search path debug info for find_la 2008-10-30 19:13:11 +00:00
steven
bfe5af2eef in find_lib, setup search path before starting search instead of modifying
some of the paths as we go; print search path in debug mode
rename a few variables for clarity
remove a spurious print statement

looks good to bernd
2008-10-30 19:02:19 +00:00
steven
e9fc27ce46 deal with multiple -rpath arguments; add the paths correctly to the run-time
path when linking an executable.

looks good to bernd@
2008-10-30 18:15:06 +00:00
steven
1440297f2c revert part of r1.35 which reversed deplibs, seems to cause very long loops 2008-10-30 15:03:07 +00:00
steven
2105813ddd don't add -pthread flag over and over again 2008-10-30 10:46:53 +00:00
steven
c2b79288a8 support -export-dynamic
from jakemsr@ long ago
2008-10-30 10:39:38 +00:00
steven
6a3d7e330e zap some rather useless features
bernd agrees
2008-10-29 23:13:22 +00:00
steven
cbf11d3bf6 convert some more lines to use the debug function 2008-10-29 23:09:07 +00:00
bernd
03982df912 foo.la files which have libdir set are going to be installed and should
end up in dependency_libs. ok steven
2008-10-29 16:16:49 +00:00
steven
8563b27b22 build static library if -rpath is not set
only fill in libdir if -rpath is set
2008-10-29 16:10:53 +00:00
steven
0d31269c32 error out if we cannot find a library file in the library hash
restrict addition of a flag to library link mode
2008-10-29 15:28:22 +00:00
steven
4ba440c926 use a subroutine for printing debug info
print some more debug info while here
2008-10-29 12:13:01 +00:00
steven
02481d9d12 revert a fix from bernd, it breaks other stuff
build deplibs the reverse way, seems to improve the ordering a bit
2008-10-29 10:09:33 +00:00
bernd
70853d5e36 Fix globbing to find libraries. ok steven 2008-10-28 17:16:31 +00:00
bernd
c884da49b1 Unbreak dependency_libs generation for .la files. ok steven 2008-10-28 17:15:00 +00:00
bernd
f2d591ad64 Print a warning if a lib isn't found in %libs so we don't try to use
an uninitialized variable.

steven agrees
2008-10-28 11:31:48 +00:00
bernd
61891ab14d parse_file now caches the file contents in %file_cache so we don't
have to to IO on the same files again and again.

don't skip any .la files in resolve_la yet to not break the order
(fixes misc/amanda)

added some debugging prints

ok steven
2008-10-28 11:16:27 +00:00
steven
401035aa94 find -lfoo libraries also inside ./.libs directory 2008-10-28 10:01:13 +00:00
steven
bec920d5eb try to use pic objects if no non-pic objects can be found
throw some warnings
2008-10-28 10:00:22 +00:00
steven
0dba86f80d use -whole-archive linker flag when linking a shared library with static
libraries
2008-10-28 09:58:55 +00:00
steven
826ea4d32c support -objectlist option; makes devel/cln build 2008-10-27 10:34:18 +00:00
steven
af0ac41778 slightly more readable
use same comment as gnu .la file
2008-10-27 09:36:42 +00:00
steven
e0416b8ada sort subs 2008-10-26 09:52:10 +00:00
steven
9fbc3582ca slight code reorg, somewhat more readable 2008-10-26 09:44:22 +00:00
sturm
2342cf4f65 BIN_PACKAGES is obsolete
from  Mikolaj Kucharski
2008-10-24 16:34:19 +00:00
steven
f259217b48 abort if neither a .la file nor a real library can be found 2008-10-20 21:00:30 +00:00
steven
728795eed1 don't try to strip .la files on installation
use same libtool version as in ports tree
2008-10-20 20:20:09 +00:00
steven
002ab91cdb -n is an alias for --dry-run 2008-10-20 20:16:05 +00:00
steven
211fecd1ec sort libraries by version number only instead of alphanumerically by filename
prevents libfoo.so.10.0 < libfoo.so.9.0

pointed out and similar diff by bluhm@ before ports lock
2008-10-10 20:32:28 +00:00
espie
553bc2d94c pkg_subst without file args acts as a filter 2008-06-09 12:01:39 +00:00
espie
252db942d7 copy rights and owner, based on jasper's remarks 2008-05-06 16:13:15 +00:00
steven
276ab95894 say it's experimental. avoid it for regular ports building for now... 2008-05-01 22:02:32 +00:00
espie
ade8f6f21e scaffold for CMD_SUBST 2008-04-07 11:10:16 +00:00
jakemsr
41e50b340e escape special characters in arguments before splitting arguments on
spaces.

ok steven@
2008-02-17 02:01:42 +00:00
simon
6692106c6c ease sending cpan reports by adding the default recipient address
requested by & ok okan@
2008-01-29 21:00:27 +00:00
simon
bf1bcd25c5 let `make regress' write test reports
to use it set CPAN_REPORT=Yes, CPAN_REPORT_FROM to your email address
and CPAN_REPORT_DB to a directory (like PLIST_DB)

initially by steven@
feedback from steven@, msf@, rui@, espie@, merdely@, okan@

ok msf@
2008-01-27 23:28:25 +00:00
steven
00e2cb6285 - store more info in .la files, simplifies the resolver
- process -R flags
- try to use the right -l flag
- skip prefer-pic/non-pic for now
- various tweaks
2007-11-16 15:37:20 +00:00
steven
2ff99c7644 don't create symlinks to static libraries 2007-11-09 15:20:57 +00:00
steven
fd610b14e1 install libraries with mode 644 if possible. 2007-11-05 12:45:34 +00:00
steven
011438b584 handle -prefer-pic and -prefer-non-pic options in compile mode.
shorten second getopt configuration line a bit.
2007-11-05 12:15:35 +00:00
steven
520b2657e2 also use -R flags when linking libraries, and add them into dependency_libs. 2007-11-05 11:27:34 +00:00
steven
3b08865b7c rework comments a bit 2007-11-03 13:40:08 +00:00
steven
8638149d6e handle current,revision,age stuff a bit better, and make sure it all gets
written in the .la file
2007-11-03 10:15:41 +00:00
steven
b5e8a26a13 drop -L flags containing .libs directories from installed .la file 2007-11-03 09:20:34 +00:00
steven
df477a7ef0 - library names don't have to start with 'lib'
- use libname.lax directory for extraction
- eliminate duplicates from dependency_libs
2007-11-03 08:47:46 +00:00
steven
2cd6019414 oops, keep -f test before creating a symlink 2007-11-01 17:21:25 +00:00
steven
cc9a22211a remove symlinks before creating them.
add --config output, only one variable for now which some port uses.
2007-11-01 10:39:33 +00:00
steven
3a7ffa8c6f - use .lai extension for better compatibility with gnu
- write .lai file at build time, and only install .la for shared libraries
- create symlink to .la file from the .libs directory
2007-10-31 21:49:08 +00:00
steven
802692b22c put the final libdir correctly in .la file from the start.
this also simplifies reworking of dependency_libs upon installation.
2007-10-31 17:32:55 +00:00
steven
c4dfa87bce - read and ignore -thread-safe option
- ignore multiple arguments for -version-info, just take the first
2007-10-29 18:47:19 +00:00
steven
ffcdf90dd5 resolve symlinks during installation 2007-10-29 15:56:56 +00:00
steven
fbad1b3d27 don't escape special characters which are surrounded by quotes. 2007-10-29 11:49:52 +00:00
steven
51efcbbcc7 libtool replacement
work in progress, do not use this yet.

input from and "commit it" espie@
2007-10-28 14:34:09 +00:00
naddy
44899eea9b * fix check for CVS keywords
* extend check to all CVS keywords, suggested by kurt@

ok kurt@
2007-10-01 20:39:23 +00:00
kurt
853bf4e006 - don't use PATCHORIG for patch files in a port's patches dir since that
confuses 'make patch'. improvement and ok naddy@
2007-09-28 17:11:10 +00:00
espie
7a9f1afb15 add message that shows we exited a directory after an error, stops log there
during rebuilds.
2007-08-25 07:56:04 +00:00
espie
0c6983c419 allow locking command to take extra parameters, store them inside the lock
file (as a comment)
2007-06-02 12:03:56 +00:00
espie
9a70356e28 use new ProgressMeter interface 2007-06-01 15:01:50 +00:00
espie
d0d6d56f7e allow extract-dependencies to use several seeds, which is necessary
for multi-packages ports (databases/sqlite3 == databases/sqlite3,-main).
2007-02-06 20:01:06 +00:00
espie
7b1ed78b46 pass -a to diff always, as it will often get confused with unicode/iso-latin
stuff.
2007-02-03 17:08:13 +00:00
jasper
1616b919e5 zap trailing whitespace in the output 2007-01-17 19:44:19 +00:00
espie
e7bba25064 avoid weird error if we run this without patches 2006-11-21 11:18:34 +00:00
espie
3d0bde7b9b zap duplicate specs 2006-11-20 12:13:43 +00:00
espie
aaa9a0cd63 remove hack to recognize .0.0. 2006-09-18 12:56:22 +00:00
espie
a7c0d256e1 also zap .n as a final. 2006-09-18 11:30:08 +00:00
espie
03409d0fb5 zap .n.m suffix, just keep .0.0 as a special case for now. 2006-09-18 11:27:47 +00:00
espie
2bf397a8e6 allows >= for lib-specs, needs some quoting for shell... 2006-08-01 10:00:54 +00:00
ian
edc8f04975 Minor clarification of message, ok espie@ 2005-12-06 17:15:38 +00:00
espie
a7f7af295a more error checking.
reported by Simon Kuhle
2005-11-06 09:34:20 +00:00
espie
eae1e7329e move DIFF_ARGS around 2005-11-05 11:38:46 +00:00
sturm
76a0bc8eef create LOCKDIR if it doesn't already exist
ok espie@
2005-11-01 10:54:42 +00:00
bernd
097bf89941 Add a quick (-q) option for the impatient people. But look out! If you
use the -q option, out-of-date looks for changed package names but not
for changed package signatures!

If you want to see ALL of you outdated packages, don't use -q.

"go ahead, commit" espie@
2005-11-01 10:11:40 +00:00
espie
f5f73908d5 more reports 2005-10-29 12:27:31 +00:00
espie
76fc40b70e fix 2005-10-29 12:14:26 +00:00
espie
3e5d6bac8a better error message for slackers who can't read perl. 2005-10-29 12:12:39 +00:00
espie
ce319b8661 Add -r option so that tool can be used to do more. 2005-10-22 18:05:34 +00:00
espie
8e7f909b8d Use the caching mechanism set up in bsd.port.mk to speed it up x3. 2005-10-10 22:25:06 +00:00
bernd
67538a1775 - only compute signatures if the package name doesn't change
- some error checking
- print differences between package signatures

ok espie@
2005-10-10 22:08:27 +00:00
espie
c4ced942c9 protect against cases where @ARGV == 0, which can happen very seldom... 2005-10-10 19:43:33 +00:00
espie
031729bf37 make sure to get ALL libs, that is, several lines in case we need pkg_info
to get the right libraries.
2005-10-10 19:04:06 +00:00
espie
01c2d27f64 let resolve-lib return a useful error code 2005-10-09 13:27:39 +00:00
espie
43ed8edb9c tweak the way library dependencies are resolved to speed them up.
Now, resolve-lib can take a big list of libraries with full paths,
and it can solve a big list of spec at once.
Basically, we move most of the parsing of spec paths into resolve-lib.

Since print-package-signature does build a full list of libs, let's solve
it all at once, instead of invoking a costly perl script repeatedly.

Add some caching possibilities for out-of-date. Specifically:
- store libraries for each package under the directory _PORT_LIBS_CACHE
- use the dependency cache _DEPENDS_FILE to avoid recreating dependency
chains, add a new file _DEPENDS_CACHE that will accumulate all dependencies,
and extract these with a simple script extract-dependencies.

Use echo to build libraries lists instead of ls, that's a bit simpler...

Some more clean-up will happen: it's probably simpler to parse libspecs
at once, extract the libraries needed and go fetch the corresponding libraries
just once.
2005-10-09 12:01:22 +00:00
espie
6ed42bc212 some clean-up + progress meter.
okay bernd@
2005-10-01 16:36:03 +00:00
bernd
f4a024d5a8 Rewrite in perl. It compares package signatures instead of package names.
This needs a lot of testing, so please test!

Suggestions and ideas from sturm@ and espie@.

ok espie@
2005-10-01 13:17:54 +00:00
sturm
041ba74bae fix cleanup code
noticed by pval@
2005-03-03 21:08:03 +00:00
sturm
b0bb1cbbbb - remove lockfiles when a host dies or dpb is killed (the ports don't do
it in these cases)
- remove an unused variable
- clean up warning messages
2005-01-30 12:37:32 +00:00
sturm
182d8ff4d8 tear down the ssh master session only after killing all node sessions
this solves the problem of ports being marked "built" after the node
building it was lost
2005-01-30 10:07:36 +00:00
espie
8e15a36e97 fix a stupid bug where some expr don't match, use extended expressions
to simplify things.
2005-01-08 00:05:16 +00:00
sturm
6e890a965a in parse_dependency_file() make sure, we really read port specs and
not some gibberish like error messages or so
2004-12-26 07:48:46 +00:00
kurt
1ca9d5c443 make update-patches deal with spaces in paths (ok espie@ sturm@) 2004-12-02 19:50:17 +00:00
sturm
0148b33be9 improved SMP handling
- automatically detect number of cpus per host
- differentiate between hosts and nodes
  => each cpu is its own node
  => ports are build on nodes now
  => multiple host entries are no longer necessary for smp machines
2004-11-14 11:46:15 +00:00
sturm
9dca1f7475 a little cleanup in preparation for improved SMP handling
print() -> warn() where useful
2004-11-14 11:25:53 +00:00
espie
1c062c3c2e allows for updates 2004-11-10 10:15:42 +00:00
espie
e94445485e provide a simple locking command in perl. 2004-11-07 10:09:35 +00:00
sturm
bc39f7be50 new option -c for "clean builds", i.e. remove all installed packages
before building a new one; don't use this when building multiple packages
on one host
2004-10-24 14:16:38 +00:00
espie
e4b643ad88 don't create patches for Oops.rej 2004-09-21 09:27:15 +00:00
sturm
ea2b00d80a $OpenBSD$ 2004-09-20 20:17:33 +00:00
sturm
1f2b8ae4df - use sh on localhost* and don't check_host() on these
=> you have an SMP machine, use localhost0, localhost1, ...
- for remote sessions, use ssh multiplexing, this speeds up a dpb
  restart by about 1/4 - 1/3
- new option '-s', which starts building in cwd
  => use 'dpb -s' instead of 'make package'
  => mostly useful for SMP machines or if you have your cluster powered
     on all the time
- '-b' now forces creation of the dependency file, if it doesn't exist,
  it is created automatically
- check signals on returning ssh sessions to notice which ones really
  succeeded and which ones where killed
2004-09-20 18:57:53 +00:00
sturm
1f1c3ee467 wrong order when redirecting STDOUT/STDERR
ok pval
2004-08-24 20:30:07 +00:00
sturm
0c0f93c97d raise default timeout to 1 minute
requested by pval@
2004-08-23 20:46:42 +00:00
sturm
91eb345927 improve reliability:
- don't invoke intermediate shells on exec(), allowing to actually kill children
- when we are going down, only kill remaining children, not the whole pgrp
- don't use a SIGCHLD handler, but call waitpid explicitly at the right places
- exit(1) in case of an error

others:
- a little cleanup
- new option -t <timeout>

ok pval@
2004-08-23 19:54:11 +00:00
sturm
02a925a3c7 Distributed Package Build is a helper script to permit several hosts
working together in doing a bulk package build.

ok pvalchev@, espie@
2004-08-10 20:54:38 +00:00
espie
413404d080 tag updating-plist case for logging. 2004-08-06 11:31:22 +00:00
sturm
0e1d71c25e gdiff die, die, die
from Jared Yanovich
2004-06-20 19:11:08 +00:00
sturm
e622e85755 be more robust as people might install packages they no longer have
port directories for, e.g. mystuff/foo
2004-05-31 14:39:40 +00:00
xsa
d55ad4e2e1 - add $OpenBSD$ Id string
- minor cosmetics
2004-04-11 17:03:56 +00:00
naddy
8b4d126f44 Script to check for availability of newer upstream releases for perl ports.
From: Sam Smith <S@mSmith.net>
2004-04-11 16:43:48 +00:00
sturm
4a5015409c adapt to new pkg tools without breaking compatibility to old ones
noted by Andreas Kahari, ok espie@
2003-11-05 17:35:45 +00:00
espie
e039496e40 Allows out-of-date to proceed even if some port is broken. 2003-09-28 10:59:42 +00:00
espie
314595c041 nicer out-of-date script, use the embedded subdir information to find
the correct package spec, and ask the corresponding package to show its
information.
2003-08-02 11:17:37 +00:00
espie
cba1263649 synch with new ports tree 2003-08-02 10:53:52 +00:00
jolan
f2d129335f update-patches depends on GNU diff, for now. Error out and say where to
install it from if it doesn't exist on the system.

"looks cool" espie@
2003-07-30 11:10:34 +00:00
espie
6fb2f71ce6 dot is regexp magic 2002-11-28 19:20:37 +00:00
naddy
a653eafeac Protect against meta-characters in library names (e.g. "libestdc++").
Mostly from pvalchev@
2002-10-01 12:16:38 +00:00
nino
d1662486a2 Make sure we're in PATCHDIR when we verify the patches. Otherwise we'll
print out incorrect information if no patches are found in WRKDIST.

Ok espie@
2002-07-24 11:54:21 +00:00
espie
3aada711bb zap fetch progress bar. 2002-05-18 18:37:47 +00:00
espie
cc277cf81d teach portslogger to put patch/configure/build depends with the correct
package.
2002-04-24 21:35:33 +00:00
espie
f801d53cd6 do not consider static libraries if dynamic libraries are around.
This is not the linker's way of working, but this is the way dependencies
must be handled to find about update issues.

naddy@ agrees, nobody else gives a fuck.
2002-03-04 13:39:34 +00:00
espie
007b0bcbc1 Recognize the `No new line at end of file' dif issue 2002-01-03 10:37:43 +00:00
espie
47692f4664 Use perl lib depends checker, that parses the full gamut of libspecs. 2001-11-17 10:39:19 +00:00
espie
a0b04e366e Groan. Even after I refreshed my memory with perlvar(1), I still managed
to typo my way through.
2001-11-11 12:57:25 +00:00
espie
56b6822e2f close PR2115 2001-11-11 12:38:57 +00:00
espie
3ad730108d synch with new regress target (I forgot to commit this) 2001-10-05 07:26:50 +00:00
todd
2c70f18cb7 implement $PATCHORIG, a variable with the ability to change from .orig to
another suffix for 'update-patches' and 'patch', since there are some
distfiles that have foo and foo.orig already; ok espie@
2001-08-24 14:43:28 +00:00
espie
a3b8e08ec3 numbering of matches means we got to default log too often. 2001-07-26 14:53:53 +00:00
espie
32d772833a Fix a few issues with portslogger, pointed out by Heikki Korpela.
I went a bit overboard with this one and implemented a Logger class
as a derived class on IO::File...
2001-07-19 12:29:09 +00:00
espie
1211f04ece Take PORTSDIR var into account. Noticed by Brian R. Landy. 2001-07-19 02:49:56 +00:00
espie
a669357afd Add old-install.mk names.
Noticed by naddy@
2001-06-07 14:46:23 +00:00
camield
53743ebea8 cvs should not touch this tag, ok espie@ 2001-05-22 09:26:46 +00:00
espie
1e51a65a71 Add Installing... 2001-05-05 21:23:56 +00:00
espie
1215dcfa7d This script can be used to check that all ports are linked in master
Makefiles.
2001-04-08 17:01:31 +00:00
espie
9336fc846c Identify identical $file and $file.orig. Report them, but don't generate
an empty patch (that is sure to throw make patch later).
2001-03-31 22:54:41 +00:00
espie
e31ec85085 logger -> portslogger
to avoid conflict with logger(1)
2001-03-13 22:00:14 +00:00
form
30d4d0aba2 Better handling of installed packages not in ports INDEX.
ok espie@
2001-03-07 03:41:10 +00:00
espie
d8eecece63 Script to log specific ports build independently. Recognizes all
===> xxx for package
lines, so that it will redirect dependencies correctly. Use as
make 2>&1 | logger logdir
2001-03-01 00:00:26 +00:00
espie
88dcba4ede Create PATCHDIR if first call of update-patches 2000-06-09 17:08:37 +00:00
espie
2026dfeb34 Bug-fix: if using WRKOBJDIR, update-patches wouldn't work if
WRKDIR=WRKDIST, since find does not follow links.
2000-06-07 00:47:47 +00:00
espie
1d2539aa57 A simple script to magically update-patches.
It's a fair attempt at trying to match actual changed files
with the patchdir, and invent new patch file names.

There are a few things it doesn't do yet, such as dealing with
patch files with multiple patches, or dealing with context diffs.

Just watch out when you use it for the first time on a port, verify
you don't lose or duplicate patches.

I've been using this to update large ports recently, and it seemed too
good not to give it to other porters.

Approved by turan@
2000-04-19 11:16:27 +00:00
espie
6130169376 author -> maintainer, use consistent terminology 2000-04-18 13:40:27 +00:00
espie
08da737589 If key, author, category is defined on the command line,
build SUBDIRS directly from INDEX.
2000-04-09 16:26:13 +00:00
espie
5dc30c71db Tweak the packaging slightly 1999-10-07 14:22:36 +00:00
espie
50a55ee199 Name says it all 1999-10-01 22:11:06 +00:00
espie
555a809e8c Bug fixed:
- comments recognized.
- standard echo name name
for tsort to work for packages without dependencies...
1999-09-28 21:54:25 +00:00
espie
91f5ae3fcb Work for flavored packages as well 1999-09-26 14:00:53 +00:00
espie
73ad5d7f6d Fix. 1999-09-26 09:36:33 +00:00
espie
79b9051629 Inform about what's going on on stderr 1999-09-20 09:42:17 +00:00
espie
b8c7c3aacc infrastructure framework: helper scripts and other stuff needed for
ports, long-term.
1999-05-18 16:39:02 +00:00