Commit graph

27 commits

Author SHA1 Message Date
Mathieu Arnold
bc0be6ac56 Don't output a warning if PERL_ARCH does not exist.
With hat:	portmgr
Sponsored by:	Absolight
2014-12-23 00:27:18 +00:00
Mathieu Arnold
64835f0cdc Make Perl link all .so it builds with libperl.so.
It makes upgrading from one Perl major version to another way easier.  For
binary package users, it means pkg upgrade will detect the libperl.so.x.yy
change, and reinstall the affected packages.  For users using ports, it will
save rebuild time as it's easier to detect what ports really need to be
rebuilt.

PR:		195821
Differential Revision: https://reviews.freebsd.org/D1241
Submitted by:	mat
Reviewed by:	antoine, bdrewery
Exp-run by:	antoine
With hat:	perl
Sponsored by:	Absolight
2014-12-17 13:21:56 +00:00
Bryan Drewery
32852abae0 - Allow LINUXBASE for shebangs.
PR:		193878
Submitted by:	Jan Beich <jbeich@vfemail.net>
With hat:	portmgr
2014-10-03 18:47:47 +00:00
Tijl Coosemans
fad34ea21f Turn the installation of *.la files, without some form of USES=libtool in
the port Makefile, into a stage-qa error.  All ports that would trigger
this error have been converted.  Many thanks to all people involved in
this, especially Dmitry Marakasov (amdmi3) who handled most ports.

At this moment over 2200 ports have USES=libtool and over 20000 library
dependencies between packages have been removed.

This also marks the point where :keepla is no longer special.  It is now
only needed if a port uses *.la files at run-time.

QA-run by:	antoine
Approved by:	portmgr (antoine)
2014-09-15 18:23:21 +00:00
Antoine Brodin
8ffd5fe7a8 Ignore references to stagedir in .fmt and .log files generated for tex formats
Those are harmless (records from which file they were generated from) and
removing them would require ugly hacks according to hrs@

PR:		ports/192933
Differential Revision:	https://reviews.freebsd.org/D684
Reviewed by:	bapt, hrs
With hat:	portmgr
2014-08-30 08:55:57 +00:00
Antoine Brodin
4d04df1859 Check that the plist doesn't reference the stage dir during stage-qa
====> Running Q/A tests (stage-qa)
Error: '/usr/ports/www/claroline/work/.PLIST.mktmp' is referring to /usr/ports/www/claroline/work/stage
*** Error code 1

Differential Revision: https://reviews.freebsd.org/D685
Reviewed by:	bdrewery
With hat:	portmgr
2014-08-25 22:10:42 +00:00
Antoine Brodin
4451bbef17 Advise trying INSTALL_TARGET=install-strip before ${STRIP_CMD}
Phabric:	D477
Reviewed by:	bdrewery
With hat:	portmgr
2014-08-17 17:48:26 +00:00
Rene Ladan
3143a73f6d Mk/Scripts/qa.sh: add /bin/tcsh as a valid shebang.
Phabric:	D231
Approved by:	portmgr (antoine)
2014-06-17 14:33:53 +00:00
Bryan Drewery
1d6dc187d6 - Fix regression handling files with spaces from r350006.
Separate file(1) and stat(1) output by a newline and read each line
  individually to avoid losing spaces.
- Use <<-EOF with heredocs to avoid bad indent
- Add some more comments
- Quote filenames in output so it is less unclear

Spotted by:	mandree
Reviewed by:	antoine
With hat:	portmgr
2014-05-09 22:29:30 +00:00
Tijl Coosemans
e9ccd0e2a8 Let stage-qa detect .la libraries and warn that a port needs USES=libtool.
PR:		ports/189255
Approved by:	portmgr (antoine)
2014-05-06 11:57:22 +00:00
Antoine Brodin
a45906707f - Do not advise to strip non FreeBSD binaries [1]
- Shorten messages

Requested and tested by:	xmj [1]
With hat:	portmgr
2014-04-21 20:17:00 +00:00
Antoine Brodin
0ade3b428b Do not advise to strip ELF relocatables, usually it is harmful
With hat:	portmgr
2014-04-12 20:49:52 +00:00
Antoine Brodin
32d4470be8 Reduce the number of false positives reported by the shebang qa check
by looking only at files and symlinks in bin, sbin and libexec

Reviewed by:	bdrewery
With hat:	portmgr
2014-04-12 20:48:04 +00:00
Bryan Drewery
33c153382d - Make shebang a warning for now, too many false-positives in files we
do not care about.

  antoine@ is working on a better solution for this.

With hat:	portmgr
2014-04-11 14:15:57 +00:00
Antoine Brodin
5737569545 Rewrite the sharedmimeinfo qa check so that it doesn't produce a false
positive on misc/shared-mime-info

With help from:	bdrewery
With hat:	portmgr
2014-04-08 16:50:13 +00:00
Bryan Drewery
678c058c5d - stage-qa: Fix absolute symlink check to look at target not fully resolved
path. Now tested on both good and bad symlinks.

Reported by:	antoine
Pointyhat to:	bdrewery
With hat:	portmgr
2014-04-03 14:09:00 +00:00
Bryan Drewery
97b80d5bd4 - Fix fatal checks not exiting with non-zero [1]
This means that files referrencing stagedir or linked to stagedir will
  now be fatal errors as intended.
- Stop polluting global namespace with IFS changes
- Speedup find(1) -exec usage by execing far less
- Ignore known false-positive/harmless stagedir files in paths() [2]

Reported by:	eadler [1]
Discussed with:	antoine [2]
With hat:	portmgr
2014-04-03 13:00:17 +00:00
Antoine Brodin
d87748d6f2 - Do not check for ${WRKDIR} in staged files, there are lots of false
positives as some .o files may embed the source path [1]
- Only check shebang of files with executable bit set

Requested by:	bapt [1]
With hat:	portmgr
2014-01-28 22:19:30 +00:00
Antoine Brodin
7a75fc64ed Fix paths check from qa.sh
IFS is set to newline so dirs was not correctly splitted

Approved by:	portmgr (bapt)
2014-01-09 18:43:36 +00:00
Baptiste Daroussin
0d585ac82e /usr/bin/nawk and /bin/csh are valid shebangs 2013-12-06 23:12:52 +00:00
Matthias Andree
ed6f700839 - in qa.sh, properly work with filenames containing blank or tab,
by setting IFS to just LF

- in check-stagedir.sh, properly detect unset environmental variables,
  and list them all

- in check-stagedir.sh, also list the full prefix as known, not just
  its parents

PR:		184039
Approved by:	portmgr (bapt)
2013-11-23 12:23:19 +00:00
Matthias Andree
13b212c743 bsd.stage.mk: Fewer false positives, much faster, easier maintenance.
Bugfixes:

* @cmd in pkg-plist is now properly handled.
  - It was previously treated the same as though there was a directory
    following it, missing the prefix. (ordering matters in case...esac)

  - Due to the cwd=${PREFIX} inside the while read line loop, state
    tracking was broken and every new line assumed that cwd were the
    prefix.

* stage-qa no longer complains about unstripped binaries if debugging is
  active (WITH_DEBUG set && WITHOUT_DEBUG unset).

* The compress-man target uses ECHO_MSG, not ECHO_CMD, to print its
  build step.

Additions:

* The plist parser now understands @unexec rmdir ... || ... lines,
  including those with redirections, so that there are no false
  positives for directories stripped with @unexec rmdir (usually
  happens on stuff installed outside $PREFIX, as in /var).

* The system's root and var mtrees are now also expanded to avoid
  false @dirrm positives if a port installs directories under /var
  and has to create parents in the stagedir that are present in a fully
  installed system (i. e. in the real $PREFIX).

* Given that pkg_create is deemed beyond repair with respect to deleting
  files outside prefix, generate @unexec rmdir statements for such
  directories, rather than @dirrmtry, to sidestep the problem.

Speedups:

* the orphan check now generates sorted lists of staged files,
  and plisted/mtree files, and compares them with comm(1).
  This saves us the overhead of running one grep process per file
  and up to two per directory, and defers the actual list
  processing to a shell utility.  Complexity has not changed,
  but overhead per item has.

* the orphan check now uses one file for directories and one file for
  files mentioned in pkg-plist, so we need not decorate them with "dir "
  and parse them out any longer.

* qa.sh's shebang scanner only looks at the first line of a file,
  sed is told to exit from the 2nd line.

Other Changes:

* Split the makeplist/check-orphans logic out of bsd.stage.mk,
  it is too unwieldy to maintain in make-escaped shell syntax,
  and permits shell tracing with "SH=sh -x" (including quotes!)

* Unify the functions "makeplist" and "check-orphans" in one
  script.  The only difference is that makeplist assumes an empty
  pkg-plist, whereas check-orphans parses it.

* overhaul the mtree extractor, avoiding awk.

Reviewed by:	bapt
Approved by:	portmgr (bapt)
2013-10-31 19:07:38 +00:00
Alex Kozlov
542371959d - Add check for suid files and directories
Approved by:	portmgr (bapt)
2013-10-20 18:12:49 +00:00
Baptiste Daroussin
049b167664 Recommand to use STRIP_CMD to strip binaries given that it will respect the WITH_DEBUG option 2013-10-19 00:17:10 +00:00
Bryan Drewery
cbfe674254 - Fix desktopfileutils() and sharedmimeinfo() returning non-zero and causing
failure on every port that does not use shared-mime-info or need it.

  Must return 0 at end of functions or it considers the last command ran as
  the return code.

Reported by:	eadler
With hat:	portmgr
2013-10-11 02:52:35 +00:00
Antoine Brodin
0a9a0a511f Add two QA tests for staged ports:
- check for desktop files handling MIME types
- check for share MIME-Info database

Approved by:	portmgr (bapt)
2013-10-10 17:09:33 +00:00
Baptiste Daroussin
aa40865de1 First set of Q/A for staged ports.
A couple of Q/A tests are done if the DEVELOPER macros is set in make.conf
Right now the tests are:
- Check if the symlinks are properly created
- Check if the binaries are stripped (just warn)
- Check if the STAGEDIR or the WORKDIR are referenced in the final files
- Check if the ports provide script with bad shebangs.
2013-10-09 15:11:32 +00:00