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...
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.
- 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.
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.
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.
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@
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.
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@
- 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.