Commit Graph

3366 Commits

Author SHA1 Message Date
John Marino
0fcb615212 ports-mgmt/synth: Upgrade version 1.61 => 1.62
Cosmetic: curses display

  Capitalize "Swap" and "Skipped" field labels

Cosmetic: web report

  After the build completes, fade out the builders table in 2.5 seconds.
  Nobody needs to see a table showing all the builders in "shutdown" mode.

Bandwidth: json files

  A history.json file holds up to 500 log entries.  16 bytes of spaces were
  removed which reduces the history file size by 8000 bytes.  Spaces were
  also removed from summary.json which can account for 20%+ of the size.

Only rewrite history files upon change:

  The last history.json file was being written/rewritten every 3 seconds
  regardless if there were changes to it or not.  Now it's only written
  if it's changed since the previous write.  This might help reduce errors
  seen by in nginx access log which are thought to occur when file changes
  as the file is being served.
2016-10-20 18:24:26 +00:00
John Marino
c7753953da ports-mgmt/synth: Upgrade version 1.60 => 1.61
Address "[N] Fetch prebuilt packages" bug:

  Once the /usr/local/etc/pkg/repos/00_synth.conf file was created, there
  was a good change that fetching prebuilt packages would stop with a
  fetch error that the checksum didn't match.  This seems to be caused by
  pkg(8) using both the FreeBSD and the Synth repositories and often
  deferring to the latter.  This is incorrect behavior as only the FreeBSD
  repository should be used for prefetching.  This issue is hopefully
  resolved now.

Web report behavior change:

  Any existing ??_history.json files are now deleted at the start of
  each run.  They were only litter as the javascript did not pull in old
  files, so this change just removes them.

  While here, rename the "Elapsed" column on the builders table to
  "Duration" to match the history table lable and also adjust the widths
  of the origin and information columns on the history table.
2016-10-18 18:02:48 +00:00
Colin Percival
413ce59cea Simplify Makefile via USES=metaport.
Submitted by:	mat
2016-10-18 04:52:14 +00:00
Baptiste Daroussin
df21debbe1 Release 1.9.1
- fix a fd leak on freebsd <11

Reported by:	mat
Tested by:	mat
2016-10-16 14:55:49 +00:00
Baptiste Daroussin
dd098475c5 Update to 1.9.0
- Drop privileges in many commands
- Drop privileges when fetching a file
- Add resource limitation in sandboxes
- Add support for METALOG
- pkg delete new prints a warning for pattens that matches nothing?
2016-10-15 21:26:17 +00:00
Baptiste Daroussin
56a7235107 Update to 1.9.99.0
- Fix pkg refetching te repositories all the time
- Add support for METALOG
2016-10-15 21:23:41 +00:00
John Marino
88f511ebaa ports-mgmt/synth: Upgrade version 1.54 => 1.60
Major new feature: Web-based front-end

  A dynamic html report is now generated for each build.  The report is
  placed at <profile log directory>/Report/index.html.

  The report is updated 10 times per minute.  The entire build history
  is retained and is searchable, but that history is reset at the start
  of the next run.

  In addition, several fields are clickable and trigger a quick-filter
  on the history log including the "Built", "Failed", "Ignored",
  "Skipped", "No." column and "ID" column (see tiptool for action hint)
  and the "Total" field clears the search pattern quickly.

  An earlier but representative version of the web report can be seen at:
  https://github.com/jrmarino/synth#web-interface

  The Synth web report pulls 2 orders of magnitude less data than the
  equivalent poudriere report because the json data is split into
  multiple files limited to 500 ports each (e.g. the poudriere data file
  might be 1.8 Mb on a big bulk run polled every 8 seconds where as
  Synth only pulls the latest segment file (50kb avg) every 6 seconds.
  Synth also stops polling when the run is complete.

Minor enhancement: The log files were cleaned up

  The data/phase headers and footers were modified so that the build
  log appears a lot cleaner now (subjective of course).
2016-10-15 20:24:10 +00:00
Romain Tartière
740c67430a Update to 1.0.14
Allow to override configuration location with the $portshaker_config_dir
environment variable.
2016-10-14 21:01:38 +00:00
Romain Tartière
e8f65adc01 Update to 1.0.13
This update brings:
- Documentation update;
- A new way to fail fast when conflics are detected.

Reported by:	swills
2016-10-13 20:30:11 +00:00
Colin Percival
2f25c41ccf Add port-index-uniquifier, which is a dummy port taking its version number
from ${OSVERSION}.  This should work around a bug in portsnap whereby the
"Fetching N metadata files" step will fail if the identical INDEX files
are generated for different major FreeBSD versions.
2016-10-10 23:37:42 +00:00
John Marino
a7331d8a9f devel/adacurses: Prevent building with base ncurses headers
It turns out that the C source files were getting built with the headers
from the base ncurses.  The recent update in Synth's display exposed a
resulting problem with the add chtype routines, resulting in garbled
output.  Since adacurses is a static library, synth requires a revbump.
2016-10-09 02:58:20 +00:00
John Marino
8ce3fdb296 ports-mgmt/synth: Upgrade version 1.53 => 1.54
Handles remaining resizing exceptions and improves display handling.

Yesterday's work handled most of the common display exceptions, but others
were still possible.  Now all possible exceptions are handled.

Several improvements were made to the display:
  1) lines no longer wrap if the size width is resized too narrow; they
     get truncated as always intended
  2) Elements such as the elapse timer don't get displayed in the wrong
     place when the screen is too narrow (they just don't show)
  3) The dashes now get restored if the screen is sized small and then
     big again (or started small and then expanded).  In many cases those
     lines just never came back before.
  4) The "full" refresh frequency was increased a period of 30 seconds to
     a period of 4 seconds.  This has a side benefit to text-mode watchdog
     as well since that's the same timer for the log inspection.
  5) The history window height ranges from 10 to 50 rows.  If the xterm
     window starts small, the history will be 10 lines.  If it starts
     big, the number of lines will be dictated by the original size of
     the xterm window.  Making the screen small and then bigger again will
     reveal the full number of log lines.
2016-10-07 19:43:54 +00:00
Dmitry Marakasov
17ceaec13f - Update to 1.5.2
- While here, minor consmetic fixes

PR:		212847
Submitted by:	cryx-freebsd@h3q.com (maintainer)
2016-10-05 18:45:56 +00:00
John Marino
6ffe47b91e ports-mgmt/synth: Upgrade version 1.52 => 1.53
Major bug fix: ncurses display resize hang fixed

  Until now, resizing the window why synth is running in ncurses mode
  caused synth to hang (it would finish the builds it was working on
  but the display wouldn't update and no new jobs would start).  This
  was due to an unhandled exception thown by ncurses binding as a result
  of the resize event, and now these are handled.

Minor fix: Ports with @info in pkg-plist now pass in test mode

  The mtree exclusion file was improved to allow these leftover info
  directories to be ignored (as is done in poudriere.  Before only
  info/dir was ignored, but the presence of "dir" prevented "info" from
  being removed by pkg(8) upon deinstallation.

enhancement: Augment text mode (requested)

  Now when a builder starts on a new package, the port origin will be
  shown in the running log (before only the completion was logged.)
2016-10-05 18:09:26 +00:00
John Marino
234bbffea5 ports-mgmt/porttree: switch MASTER_SITE to SF to unbreak
PR:		213025
Submitted by:	maintainer
2016-09-30 14:30:52 +00:00
John Marino
e4fb654829 ports-mgmt/synth: Upgrade version 1.51 => 1.52
Fix regression in text-mode caused by activation of watchdog.
The watchdog is checking the lengths of the build logs to figure out if
a builder has stalled.  It turns out that the logs were only being
inspected in ncurses display mode, so any port that took longer than
20 minutes to build would be aborted by the watchdog.

While here, bump the *BASE* time limit for the build phase from 20 to
25 minutes based on extreme causes (normally involving gcc or tex ports)
and also bump the check-plist phase limit from 3 minutes to 10 minutes.
Some ports have tens of thousands of files in them which takes a long
time to check under test mode, especially if the server is loaded.
2016-09-28 16:08:27 +00:00
Bryan Drewery
f771ab66f2 Force a rebuild to bring in libarchive fixes from head r305819.
MFH:		2016Q3
2016-09-14 23:41:39 +00:00
Mathieu Arnold
dbbfc7889a GOOGLE_CODE has gone away.
- If a port has another upstream, remove GOOGLE_CODE
- If a port only has GOOGLE_CODE mark it BROKEN

Some ports have a local mirror configured but for security reasons, it
is not considered upstream.

Sponsored by:	Absolight
2016-09-14 15:59:34 +00:00
Baptiste Daroussin
e7badd6689 Add javavmwrapper 2.5_1 to the list of buggy scripts 2016-09-13 20:29:54 +00:00
Emanuel Haupt
336e032f3c Mark NO_ARCH 2016-09-10 10:48:56 +00:00
Dmitry Marakasov
dd8c6f9542 - Fix python shebang
PR:		191106
Submitted by:	fred@fredcondo.net
Approved by:	maintainer timeout (wxs, 2 years)
2016-09-09 12:02:45 +00:00
John Marino
8bbd0f98c3 ports-mgmt/synth: Upgrade version 1.50 => 1.51
This release changes the watchdog time limits from a fixed value to
one that is affected by the average load.  Using fixed values didn't
work well on extremely (and intentionally) loaded servers, e.g. an
overage load of 200 on an server with ncpu of 32.

The base times which were long to account for loading have been reduced,
and a multiplier of average-5 load / ncpu rounded to the nearest tenth
has been implemented (with 1.0 as the floor value).  For example, a 4-core
machine with an average 5-minute load of 6.0 will multiply the base
timeout by 1.5.  This approach worked well in an extreme test against the
entire ports tree.
2016-09-06 17:02:11 +00:00
Dmitry Marakasov
3cc2f28343 - Mark BROKEN on 9.x: requires std::to_string
Approved by:	portmgr blanket
2016-09-01 14:08:05 +00:00
John Marino
c4c86b3c52 ports-mgmt/synth: Upgrade version 1.43 => 1.50
This release improves robustness and activates the watchdog.
It leveraes the procctl functionality to ensure all processes spawned
from a builder are reaped, which in turn ensures that tmpfs mounts can
be dismounted.  Previously stuck processes could prevent those dismounts,
trapping them as new mounts get placed on top.

This also finally enables the watchdog that will kill runaway builds.
The watchdog has a specific time limit per build phase where it will
kill the build if the log doesn't grow over the previous X minutes.

No activity timeout limits per phase are:

  check_sanity    :   1 minute
  pkg_depends     :   3 minutes
  fetch           : 480 minutes
  checksum        : 480 minutes (fetches if required)
  extract_depends :   3 minutes
  extract         :  30 minutes
  patch_depends   :   3 minutes
  patch           :   3 minutes
  build_depends   :   5 minutes
  build           :  20 minutes
  run_depends     :  10 minutes
  stage           :  20 minutes
  check_plist     :   3 minutes
  pkg_package     : 120 minutes
  install_mtree   :   3 minutes
  install         :  10 minutes
  deinstall       :  10 minutes

A minor change regarding the swap display: If there is no swap installed,
it will now display "n/a" instead of "100%"
2016-08-31 17:20:14 +00:00
John Marino
5d5749e182 ports-mgmt/synth: Upgrade version 1.42 => 1.43
This is a minor bug fix version.  Changes include:
 * Set close-on-exec operation mode on popen.  This is required to stop
   leaking file descriptors in highly concurrent modes (e.g. 32 builders).
   It's not supported on FreeBSD 9 or DragonFly 4.4 (and earlier) so this
   modification is removed for those platforms.
 * Remove procfs mount for lang/rust and lang/rust-nightly.  This was
   necessary for DragonFly, but rust has been fixed for DF 4.6 and later
 * Add a stage-QA exception for entries left /var/spool/*.  The presence
   of these are not an identication of a port issue
 * Sanitize synthexec to verify file descriptors 0 .. 2 are in use and
   automatically close any file descriptor > 2 before execv fork.
2016-08-25 17:23:09 +00:00
Tobias C. Berner
0f583d8700 Replace Mk/bsd.kde4.mk by Mk/Uses/kde.mk in preparation for KDE Frameworks and
Plasma5 ports

At the moment KDE ports use bsd.kde4.mk to handle their dependencies. When
working on the ports for KDE Frameworks and Plasma5 it seemed to be more
reasonable to create a new kde.mk instead of adding an bsd.kde5.mk.

The kde.mk in this review is a stripped down version of the one we are using in
the KDE Test repositories plasma5 branch [1] to only contain the parts relevant
to the current KDE4 ports in the portstree [2].

Changes to the KDE Ports needed by this:

Replace USE_KDE4 by USE_KDE [3]
Add USES=kde:4 [4]
[1] http://src.mouf.net/area51/view/branches/plasma5/KDE/Mk/Uses/kde.mk
[2] The version in the plasma5 branch also handles frameworks/plasma5 and
    handles MASTER_SITES via a KDE_DIST variable similar to bsd.qt.mk for Qt
    Ports -- I chose to leave this out for now, as the diff is already large
    enough.
[3] I chose USE_KDE instead of USE_KDE4, USE_KDE5, USE_KDEX as the version we
    want is already specified as argument to kde:<arg>
[4] For KDE Frameworks and Plasma5 ports this would be kde:5

PR:             210667
Approved by:    portmgr, mat (mentor), rakuco (mentor)
Reviewed by:    mat, rakuco
Differential Revision:   https://reviews.freebsd.org/D6961
2016-08-24 08:20:31 +00:00
Baptiste Daroussin
987ab62e4a Update to 1.8.99.1
- removes chroot in sanboxes it causes too many issues

Reported by:	kwm, bdrewery
2016-08-20 17:26:20 +00:00
Baptiste Daroussin
4f321f2fba Update to 1.8.99.10
- sandboxes always drops privileges if run as root and chroot in /var/empty
- sandboxes limits resource usage to make them less useless on system without capsicum
- drops privileges and chroot to /var/empty in various commands if run as root:
  * pkg audit
  * pkg info
  * pkg (r)query
2016-08-19 22:16:07 +00:00
Dmitry Marakasov
3e9751bdd0 - Update to 3.3.1
- While here, add NO_ARCH and turn ECHO_MSG's into pkg-message to be visible to package users as well

PR:		211956
Submitted by:	sakaue.mamoru@mwghennndo.com (maintainer)
2016-08-19 11:46:25 +00:00
Rene Ladan
b836b290e6 Remove expired port:
2016-08-10 ports-mgmt/xps: Does not support pkg(8)
2016-08-11 18:38:51 +00:00
Romain Tartière
f5dbb48279 Fix pkg-plist.
The master port was refactored to make tracking github repositories easier, but
this change was not reflected in the last update to ports-mgmt/portshaker.
2016-08-07 11:43:58 +00:00
Romain Tartière
a8df775378 Update to 1.0.12. 2016-08-06 11:21:39 +00:00
Baptiste Daroussin
a203d9f11c Add a hack in pkg to skip running predeinstall for javavmwrapper-2.5
During upgrades/reinstall javavmwrapper 2.5 pre deinstall script deletes the pkg
temporary files preventing to finish the upgrade.

A fixed version of javavmwrapper will be made soon, this hack will remain in the
ports tree and not in pkg(8) itself. This hack is made to not bother users is
only affecting upgrade/reinstall phase not proper deinstall

PR:		210313
2016-07-31 11:52:22 +00:00
Joe Marcus Clarke
de17f32cc0 Update to 2.17.4.
* Check PLIST_FILES for icons [1]
* Add VARS and VARS_OFF to the option helper list [2]
* Add NO_ARCH [2]

PR:		211175 [1]
Submitted by:	koobs [2]
2016-07-24 14:24:34 +00:00
Stefan Eßer
4af2489d71 Fix "portmaster --check-port-dbdir" broken by the previous commit. While
the variable $unique_list was created with identical content, its value was
only set within the implicit sub-shell (2nd command in a pipe) and lost on
exit from the while loop.

Reported by:	Jakub Laach
2016-07-24 14:21:13 +00:00
John Marino
e08d321149 ports-mgmt/synth: Remove ineffective sed command from port makefile
At one point during development of last changeset, the default.gpr
file needed to have a LOCALBASE correction, but that's no longer true.
This line shouldn't have made it into the previous commit.
2016-07-22 02:15:38 +00:00
John Marino
546b41f190 ports-mgmt/synth: Upgrade version 1.41 => 1.42
This is a bug fix version.  Changes include:
  * Fix potential exception seen with a large number of builders.  The
    height of the log area was determined by subtracting the height of
    the other two zones from the overall xterm height.  This allowed for
    the possibility of a negative height for the log area resulting in a
    thrown exception.  Now the log is defined to be at least 10 lines
    log, but ncurses will just truncate as necessary.
  * Detection of bad OPSYS value added.  There's a rare case where pkg
    can corrupt the configuration value of the Operating System.  If it
    happens on FreeBSD, Synth thinks it is running on DragonFly which
    causes all sorts of problems.  The corruption can't be auto-fixed,
    but Synth will gracefully abort with instructions on how to correct
    the issue.
  * Fix filtering of port-mgmt/pkg in list of ports.  Synth was designed
    to always skip building pkg and thus remove it from a given list of
    ports, but the filtering didn't work correctly resulting in an
    exception with a misleading message.
  * Redirect failed jail setup command output to a new log:
    /var/log/synth/05_abnormal_cmd.out.  Under normal operation, the
    log will be empty, but any abnormal output will now be sent there
    rather than corrupt the ncurses display as it before now.
  * Fix mount cleanup procedure.  The output of "df -h" was being
    sorted alphabetically which caused mounts-on-mounts (an exception
    condition that dillon has been getting with H2 testing) to fail
    during dismount.  The df output is already in the correct order so
    it only needs to be iterated in reverse without the pre-sort.

Change:
  * Synth now links curses statically so it should not pull in any
    additional packages when the Synth binary package is installed.

The only known bug is the curses display will freeze if running in an
xterm window that gets resized.  The cause is still unknown because in
theory Synth should correctly react to a window-resize event.  Some
people may have success with ^z followed by fg command, but it's best
to avoid resizing the window at all.
2016-07-22 01:40:03 +00:00
Mathieu Arnold
f899c758a6 When there is a do-install target, do not use a post-install target, do
everything at once.  Sometime, rename post-install into a options helper
target.

I did not fix ports that were such a mess that I could not figure out
what they really wanted to do.  I also did not change ports that had
some version of an auto-plist code in post-install, for the same reason.

With hat:	portmgr
Sponsored by:	Absolight
2016-07-19 11:04:13 +00:00
Stefan Eßer
2571fabfb8 Bump PORTREVISION to have portmaster be re-installed with the fix commited
as SVN rev. 418619.

Reported by:	Herbert J. Skuhra (herbert at mailbox.org)
2016-07-16 13:03:56 +00:00
Stefan Eßer
2ef23fbf21 A read lock on the sqlite file used by pkg can lock out writers for
indefinite amounts of time, preventing installation or upgrade of
ports with portmaster.  Instead of using a pipe to read pkg query
input to be consumed by a shell loop, buffer the query result in a
shell variable and let the loop iterate over the contents of this
variable.

While here, use a call to all_pkgs_by_origin() instead of an inline
versin of equivalent code.

Reviewed by:	tz
Approved by:	tz
2016-07-16 07:13:24 +00:00
Pawel Pekala
3185385419 - Update to version 3.3.0
- New maintainer's email

- Enable automatic workarounds of looped dependencies
- Fixe a problem that had emerged when pkg(8) was updated

PR:		210955
Submitted by:	maintainer
2016-07-14 17:28:34 +00:00
Enji Cooper
b2eb1410b4 Fix ports-mgmt/portfind string management/searching issues
Makefile:

  Bump `PORT_REVISION` for the change.

portfind.c:

  get_release(..):

  The function was incorrectly modifying a pointer that wasn't the original
  calloc'ed pointer, tripping asserts when MALLOC_PRODUCTION wasn't enabled
  in jemalloc [*].

  - Use one temporary buffer (`release`) instead of two (`release` and
    `version`).
  - Improve temporary memory idiom for managing memory used with
    sysctlbyname(3) by first checking the length, mallocing the buffer,
    then filling it with a second call to sysctlbyname(3).
  - Use strchr(3) instead of handrolling it in a while-loop and to
    avoid the improper free(3) of the memory allocated for `release`.

  main(..):

  - Use asprintf instead of calloc + sprintf.
  - Use constant `pasting` with `INDEX_FILE` instead of passing it in to
    asprintf(3).
  - Fix error message when unable to open `INDEX_FILE`.

Approved by: brd
Differential Revision: https://reviews.freebsd.org/D7198
PR: 211032 [*]
Reported by: Michael Zhilin <mizhka@gmail.com>
Reviewed by: Michael Zhilin <mizhka@gmail.com>
Sponsored by: EMC / Isilon Storage Division
2016-07-14 15:46:41 +00:00
Kurt Jaeger
f64f397b91 ports-mgmt/dialog4ports: 0.1.5 -> 0.1.6
- Added support dialog.ascii_lines(D4PASCIILINES), thanks to kuriyama
- Now first line can be ITEM_SEPARATOR, reported by: Rotluchs(EFnet)
- Rewrote Makefile, bsd.prog.mk no longer needed, with help from amdmi3
- Fix help message, thanks to wblock

PR:		211035
Submitted by:	rum1cro@yandex.ru (maintainer)
2016-07-12 18:03:44 +00:00
Dmitry Marakasov
9cc6d6f00a - Drop maintainership and deprecate: does not work with pkg(8)
PR:		210973
Submitted by:	serpent7776@gmail.com (maintainer)
2016-07-11 15:37:45 +00:00
Joe Marcus Clarke
7021f1ec0e Update to 2.17.3.
This release fixes a bug in newer versions of Perl where '{' and '}' caused
regexp compilation to fail.

PR:		210809
Submitted by:	mat
2016-07-07 17:42:25 +00:00
Baptiste Daroussin
b6c1d8ce53 Update to 1.8.7
- update internal expat to 2.2.0
- fix external solver
- fix build on freebsd pre 9.2
- fix warnings on armv6
- fix solver issue resulting in missing conflicts or reinstalling unneeded
  packages
- add a mini summary at the end of the output
2016-07-05 15:15:52 +00:00
Baptiste Daroussin
b0ba98cf02 Update to 1.8.99.9:
- Update internal expat to 2.2.0
- Fix using an external solver
- Fix build on FreeBSD prior to 9.2
- Fix issues on armv6
- Add a mini summary of the operations (removal, installation, upgrades) that
  that will be done
- Fix solver issues that could trigger issues with conflicts or reinstall too
  many things
2016-07-05 15:02:08 +00:00
Bryan Drewery
825647e47b Move the release MANIFESTS to misc/freebsd-release-manifests.
Also add a dependency for ca_root_nss to Poudriere.
2016-06-29 23:37:51 +00:00
Baptiste Daroussin
80871d0e41 Release 1.8.6
- Important fixes in the solver
- When conflicts are found, they are explicitly printed
- Reduce namecache contention a bit
- Temporary files created during extraction are now hidden
- Accept symlinks to directories when pkg is expecting a directory
2016-06-25 11:48:14 +00:00
Baptiste Daroussin
7394e77926 Update to 1.8.99.8
- Accept symlinks to directory when the package expects a directory
- Cleanup symlink checksuming code
- Fix a bug that results in bus error on very specific cases with lots of
  packages installed
2016-06-25 11:31:42 +00:00