Commit Graph

165 Commits

Author SHA1 Message Date
bernd
41bd832cdc Add missing parameter for a parse_original_plist() call in grab_all_lists(). 2007-02-07 11:24:23 +00:00
espie
f7229e2ff8 make expr less greedy 2007-01-12 21:53:31 +00:00
espie
6c505bfc6f cache mtrees read from dependencies so that we don't parse the same
dependency twice across MULTI_PACKAGES.
2007-01-10 01:41:29 +00:00
espie
98c444198b yet more special-casing: do backsubst for libnames correctly, so that
update plist correctly registers existing ones, otherwise shared libraries
with some weird names will always pop back to the main PLIST.
2007-01-09 19:40:49 +00:00
espie
084dbff69a for shared libraries, only apply var_backsubst on the library name, leave
the version alone.
2007-01-08 18:33:37 +00:00
espie
6a1241ecdc don't insist on matching subpackage names, anything goes... 2006-12-19 10:03:22 +00:00
espie
86a95eb2d8 filter prefix early, in preparation of more changes to come. 2006-12-11 17:17:25 +00:00
espie
468c67ec44 zap extra parse_args. 2006-12-11 13:51:14 +00:00
espie
c89eab44fc pass all subpackage information to make-plist.
Adapt make-plist to use the same code as pkg_create to deduce fragment
names, remove some old special cases that should no longer matter.

Zap directories from dependencies in a way depending on the dependency.
Far from perfect yet, as directories should be registered multiple times
in packages that do not depend on each other, and could also be used to
figure out where to put new files...
2006-12-11 13:36:06 +00:00
espie
9d9d40e8e6 kludge make-plist to work with new multi packages 2006-11-20 13:56:37 +00:00
espie
6b60ddeb78 remove the dependency of make-plist on dependent packages: instead, go
directly use `make print-plist' to find these lists in the ports tree.
2006-11-09 08:16:22 +00:00
espie
a000f1d8ec Stripping dir: shorter diagnostic when package is not found. 2006-11-06 16:35:20 +00:00
espie
07c292fb8d minor cosmetic changes: do not strip packages twice.
check for empty .info files.
2006-10-07 10:04:09 +00:00
espie
279c5d5732 detect more stuff that probably does not belong in PLISTs, based on the
filenames (vim .swp and emacs ~ files)

Found out by Andreas Kahari
2006-04-03 13:53:43 +00:00
bernd
abab1f6055 Display lib version in "unregistered shared lib" warning.
okay espie
2005-12-26 19:29:34 +00:00
bernd
d73c3d3e79 Display warnings for unregistered shared libs only once per lib.
Less chatty now.

ok espie@
2005-12-23 13:30:05 +00:00
espie
9416bb604f get make-plist aware of the version number variables. 2005-12-23 12:48:59 +00:00
espie
4135e14535 error out in case we can't write files.
found out by bernd@
2005-11-02 21:39:43 +00:00
espie
7cd73e7f11 complain when dependent packages are not found, and stripping won't happen
correctly...
2005-11-02 18:58:44 +00:00
espie
6ca140f35b copy @shell over, since there's no way to figure it out automatically. 2005-10-23 10:48:39 +00:00
aanriot
f98128e3e2 tweak to match makeinfo's signature even with a long source filename.
better pattern and ok espie@
2005-10-18 21:05:53 +00:00
espie
00ba79a06d copy new annotations over. 2005-09-07 10:40:00 +00:00
espie
9daab219eb some perl stuff installs manpages as ../man3p/manpage.3 2005-09-05 13:06:01 +00:00
espie
3146ff3563 libraries live in the first pass. 2005-08-10 13:09:17 +00:00
espie
bbac9516f9 show a full list of existing files before exiting. 2005-07-04 10:46:05 +00:00
espie
0c80ed6d5d take @endfake into account: mark when items are before/after @endfake,
and run two passes if necessary to put stuff before/after @endfake.

For now, extra stuff always gets moved after @endfake...

This will change when I find `useful' examples.
2005-04-11 11:39:12 +00:00
espie
00f97d0a5e emit PLIST when a shared fragment is seen.
Fix long-standing buglet reported by various people, I just needed to
sit down long enough to reproduce the issue...
2005-02-05 11:40:31 +00:00
espie
3393c1c5be let @sysctl tag long.
problem noticed by sturm@
2004-12-27 00:00:27 +00:00
espie
2113d6fce1 strip /usr/local/lib path 2004-11-23 11:54:55 +00:00
espie
8710bf432e report on libraries that don't get used as well. 2004-11-23 11:17:59 +00:00
espie
a56c20faa7 use SharedLibs look-up to find libraries we don't know about. 2004-11-23 11:13:20 +00:00
espie
15f18a36d5 typo 2004-11-21 11:18:37 +00:00
espie
646a985497 allow for LIB_DEPENDS or WANTLIB to not be defined 2004-11-21 11:17:47 +00:00
espie
dd6c1654d5 fix stupid typo.
introduce WANTLIB.
2004-11-21 11:06:38 +00:00
espie
b8dfc30a1a don't report false positives for libraries with similar names 2004-11-21 10:39:24 +00:00
espie
b6797baf63 don't try to register anything that isn't at least a FileObject...
Found out by alek@
2004-11-14 19:42:04 +00:00
espie
e7dd701872 synch with packing-list changes 2004-11-13 11:49:03 +00:00
espie
8af46cc105 fix cwd issues.
try harder to resolve links
2004-11-13 11:25:31 +00:00
espie
0d09be0752 shared fragment in need of recording.
found by wilfried@
2004-10-23 06:51:54 +00:00
espie
b5445b3596 forgot to copy @newgroup and @newuser items over.
noticed by nikolay.
2004-10-17 09:20:06 +00:00
espie
784afb2649 kill old check-libs script, after checking the new one handles a.out
just fine.

Kill old subst that's not used anymore as well.
2004-09-18 13:48:43 +00:00
espie
292285c3fe clone new-style conflicts too 2004-09-18 11:03:45 +00:00
espie
fb42eebbe1 new check libs that should work with a.out, and uses the current framework
for accessing plists.
okay naddy@
2004-09-18 08:12:11 +00:00
espie
91d926e81f - lots of comments
- Mtree module, shared with check-common-dirs
- update list of `known' directories to match actual OpenBSD, so
that stuff outside of /usr/local will work.
- drop dead if destdir does not exist (e.g., fake got a problem)
- if a file is found in a fragment, and as a comment in the original
file, then that was a limitation of the old make-plist: don't look at
the comment.
- copy modes for @sample
- do fragments for multi-packages too.
- pass existing files around for more accurate @exec tests.
- don't copy install-info/mkdir if files/dir have been found.
- register dirrm dir as dir/, but using original object, so that it will
need to be found once to be accounted for.
- don't register extra as `files', otherwise we end up with bogus
${SYSCONFDIR}/file entries.
- classify directories and files in a unified way.
- more thorough tests for info files, more names, look at two lines context.
- ibid dir file.
- ibid subinfo.
- provide a way to erase a directory that only holds one file.
- use for .packlist, perllocal.pod.
- use perl Config to look for those in the right location.
- don't look at file dates, we always use fake.
- special case /etc/X11/app-defaults becomes /usr/local/lib/X11/app-defaults
- use plist state info to avoid extraneous mode/owner/group entries.
- sort comments that are not accounted for.
- warn about .orig files.
- man pages for linux.
- don't backsubst SYSCONFDIR except at start of line.
- handle @comment @dir like @comment @dirrm.
- respect fragment locations
- put %%SHARED%% at top by default.
- handle recursive fragments correctly (simpler code, needs pkg_add support)
- mark genuine fragments, and don't try to write empty ones, assuming
the chosen flavor doesn't hold the required information.
2004-09-14 22:24:39 +00:00
espie
e99d16b029 Use original item to build new one: so we can clone things we do not yet
detect, like @mandir and @fontdir.

more precise logic for changes: do not check for orig files and die if
nothing changed.
2004-08-11 09:40:17 +00:00
espie
7413f2d2da better diagnostic logic:
first output all PLISTs in a tmp dir, then compare with
original set, and report all differences.
Then check that original can be moved to orig, and do the move.
That way, make plist on a set of unchanged lists will be silent,
and can be used irregardless of the presence of P*.orig files.
2004-08-10 21:01:01 +00:00
espie
a6ddcef28f register sample dirs. 2004-08-10 08:45:21 +00:00
espie
9503cf0454 more accurate info test. 2004-08-09 12:48:56 +00:00
espie
0b2cdd25b2 next -> return 2004-08-09 12:41:03 +00:00
espie
2cce78f090 next->return 2004-08-09 12:35:45 +00:00
espie
2d2f5986a9 convenience functions so that main isn't that big.
Mark comments that have been accounted for, and show the remaining ones.
2004-08-09 10:24:26 +00:00
espie
bf445f78df do local uid/gid changes so that tempfiles will get removed correctly. 2004-08-08 18:09:04 +00:00
espie
10083d7dfb run update-plist as root, to catch all files.
pass OWNER/GROUP around and setuid/gid to them before writing
files to keep ownership.
2004-08-08 16:43:15 +00:00
espie
505d40ba33 reset lastfile before register, so that exec/unexec at start of PLIST
don't get register with the last file.
Add tag_marker `lastfile' placeholder to catch exec/unexec at start
and reproduce them faithfully.
2004-08-08 14:13:41 +00:00
espie
685bd09404 use File::Spec to resolve link. Add missing '/' when needed. 2004-08-07 07:47:38 +00:00
espie
bc4dd33fdd shared lib markers, ditch DYNLIBDIR. 2004-08-06 10:24:19 +00:00
espie
b138d92476 more stringent checks on dynamic library name.
Distinguish between library and plugin.
Saner check for DYNLIBDIR.
2004-08-06 09:37:15 +00:00
espie
e60d9a7833 use clone() to copy objects when either we can, avoiding truncation problems
if inheritance is used.
Fixes @extra dir/  copying.
2004-08-05 23:51:44 +00:00
espie
0e976d1198 almost completely new make-plist.
The new version uses the pkg_* infrastructure to read existing plists
and produced new plists.
Lots and lots of improvements:
- copy most stuff over from original lists correctly. For instance,
attach @exec/@unexec/@sample to other files and copy them in the right
location.
- generic post-treatment of @commnent, using stringize(), so that most
things can be commented out and will stay commented out.
- parse all packing-lists using relevant PREFIXes. Grab PFRAG.xx if %xx%
is seen.
- walk through all of fake, and distpatch files according to PREFIXes
if nothing else works.
- identifies man, libraries, info, handling symlink correctly.
2004-08-05 23:43:45 +00:00
espie
6ff36eddfe if SHARED_ONLY=Yes, don't bother moving libraries to a PFRAG.shared. 2004-08-03 11:17:11 +00:00
espie
65ecb32a85 file == file.orig -> rm file.orig 2004-08-03 10:51:47 +00:00
espie
a2e191d19b recognition of manpages based on the names 2004-08-03 10:16:58 +00:00
espie
454617f823 @dir directory -> directory/ 2004-07-22 22:24:51 +00:00
espie
d30077a340 too long a name will wrap to the next line. 2004-07-21 11:00:38 +00:00
espie
174132efe7 add routines for genuine recognition of info files and libraries.
As a result, this recognition must happen when we know the files
exist, e.g., at find time.

Adjust the auto-migration of shared objects to PFRAG.shared so that
it doesn't migrate subpackage files to the main package.

Simplify info handling slightly by just writing @info thingy.info.

XXX note that some info files will have to be patched to have proper
category/direntry tags.

okay naddy@
2004-07-20 19:01:22 +00:00
espie
e25db78f6a teach make-plist about @dir: converts @dirrm to @dir in the correct location.
Also warns about @extra/@extraunexec not getting copied over (we should
copy them at the end of the correct PLIST).
2004-07-18 22:47:44 +00:00
sturm
27566ce032 permit moving of shared objects and shared libraries from PLIST
to PFRAG.shared automatically
2004-07-03 17:50:52 +00:00
pvalchev
4598902e99 better patch, no need for ldconfig(1) on plugins; ok espie mjc 2004-06-29 20:26:08 +00:00
mjc
e7dbd0e457 put shared objects with no version into PFRAG.shared
OK pvalchev@ better regex suggested by espie@
2004-06-29 01:28:26 +00:00
espie
86e868c57c also check libs with paths. 2004-02-12 14:04:43 +00:00
espie
c688c5c73b nits 2004-02-01 23:43:26 +00:00
espie
1c19b2641b better elf libs checker.
okay pvalchev@
2004-02-01 23:07:30 +00:00
espie
494fac294a Report files and directories installed in WRKINST outside of PREFIX,
usually a good indication the fake process is screwing up.
Okay naddy@
2003-12-26 00:26:01 +00:00
espie
1aa18b2c75 buglet fix 2003-07-16 22:07:40 +00:00
espie
794cf63444 add_info needs a valid filehandle. 2003-07-02 09:04:08 +00:00
espie
7e85ac2f7b kludge to make it work with qt3-mt...
better form would be to ask bsd.port.mk for actual PLIST names.
2003-07-01 14:47:53 +00:00
espie
af5c0b27a7 Sort info files into the right plist. 2003-06-30 12:07:56 +00:00
espie
6caef06ee4 do not record comments twice. 2003-06-30 11:53:37 +00:00
espie
297d9e1225 Extra code for annotations: instead of stashing each element into one plist,
record all plists concerned.

This lets update-plist deal with packages with duplicated files.
2003-06-30 11:49:41 +00:00
espie
c4aafd4e74 Protect filehandle from being created twice. 2003-06-30 11:31:22 +00:00
espie
472d214ba5 Multi-packages may have extra blanks at start. Disallow... 2003-06-30 11:29:16 +00:00
sturm
a01b82e1b5 New user- and groupname schema for ports. All users and groups created
by ports have to have a leading '_' and a fixed id. They have also to
be added to db/user.list.

user.db and createuser are not used and are superfluous now.
2003-06-22 09:59:35 +00:00
espie
9ed39dcf96 ensure $out{$plist}, $out{$pshared} are defined when needed. 2003-06-16 22:42:54 +00:00
espie
bfc9aa6dfa Improvements to make-plist, try to take multi-packages into account.
Doesn't handle yet the case where several plists want the same files...
2003-06-15 13:31:37 +00:00
pvalchev
235993d268 remove license terms 3 & 4 for espie 2003-06-12 22:04:37 +00:00
sturm
5d346b70df Switch two regexps to strip trailing dots earlier from library specs.
This fixes dependency checks of specifications like bar.1.1.::foo/bar
which is now dealt with the same as bar.1.1::foo/bar
2003-04-18 20:27:59 +00:00
espie
778d367e08 Use PLIST and PFRAG, makes updating simpler in some cases. 2003-01-06 20:16:21 +00:00
espie
f9088537c3 Handle @comment @dirrm 2002-12-23 16:07:51 +00:00
espie
c43f93f261 strip only numbers at the end, and do a better job at removing spaces. 2002-12-03 13:56:44 +00:00
espie
c612390ed0 Kill at most two series of numbers from dependencies, so that
LIB_DEPENDS=glib-2.0.0.0 will work
2002-12-03 13:38:16 +00:00
espie
4fecaeb271 move stuff around, so that functions are at beginning of file.
No other significant change.
2002-04-20 19:07:25 +00:00
espie
b2e829be6d register comments. Allows to remove a file from a plist by @comment'ing it,
and having make update-plist keep that.
2002-04-15 06:38:23 +00:00
espie
9ad648bfbe Let make update-plist look at dependent packages (LIB_DEPENDS and
RUN_DEPENDS) to create a more accurate list of @dirrm.

Minor negative side-effect: up-to-date dependent packages must be present
for this to work. Not a problem, since this is only used by maintainers.

This improves the quality of generated plists for large packages with lots
of dependencies by a large amount (e.g., kde)

reviewed by pval@
2002-04-03 15:00:30 +00:00
naddy
80abcb4c2f strip leading path components from lib specs; ok espie@ 2001-12-31 01:59:39 +00:00
espie
5906a566ef First cut at a lib-depends checker: this version does use WRKINST instead
of the actual package, so it WILL get things wrong in some multi-packages
case.
2001-10-24 11:57:34 +00:00
espie
91228bc7f3 Recognize empty @owner/@mode/@group correctly. 2001-08-23 09:13:19 +00:00
espie
efb1a6317b Some attempt at parsing the .orig files, to preserve @mode/@owner/@group
and misc. information.

Try to warn if non-reproducible stuff is found.
2001-08-18 13:11:10 +00:00
espie
3fc98296ac Oops. Seen by Flinn Mueller. 2001-05-24 16:47:59 +00:00
espie
d19ed8bd90 Smarter plist regen.
- back substitute VAR_SUBST (hence swap ARCH/MACHINE_ARCH)
- pass PKGDIR to make-plist.

- don't create PLIST-auto/PFRAG.shared-auto. Move originals around, and
create new ones directly (guard against accidentally deleting old ones).

Todo: add regexp to dispatch stuff to fragments automatically, based on
MULTI_PACKAGES.
2001-05-23 14:18:24 +00:00
espie
7b5e441497 Oh well. Need both stats under different circumstances, as found out
by Peter Stromberg.
2001-05-07 15:25:44 +00:00