Bug 147242

Summary: ports-mgmt/portupgrade incorrectly remove old port when new one fails to compile
Product: Ports & Packages Reporter: Ollivier Robert <roberto>
Component: Individual Port(s)Assignee: freebsd-ports-bugs (Nobody) <ports-bugs>
Status: Closed FIXED    
Severity: Affects Only Me    
Priority: Normal    
Version: Latest   
Hardware: Any   
OS: Any   

Description Ollivier Robert freebsd_committer freebsd_triage 2010-05-31 11:30:05 UTC
I'm trying to upgrade the llvm-devel port.  During the patch phase, one outdated patch fails.  portupgrade then decides to backup the old package (as if compilation had been successful) and removes it leading to the situation where the old version has been removed and the new one fails to compile (and fail to install obviously). 

portupgrade-devel-2.4.6

Full transcript
-----
=> SHA256 Checksum OK for llvm-2.8.r105218.tar.bz2.
===>   llvm-devel-2.8.r105218_1 depends on file: /usr/local/bin/perl5.8.9 - found
===>  Patching for llvm-devel-2.8.r105218_1
===>   llvm-devel-2.8.r105218_1 depends on file: /usr/local/bin/perl5.8.9 - found
===>  Applying FreeBSD patches for llvm-devel-2.8.r105218_1
Ignoring previously applied (or reversed) patch.
1 out of 1 hunks ignored--saving rejects to tools/clang/include/clang/Makefile.rej
=> Patch patch-tools_clang_include_clang_Makefile failed to apply cleanly.
=> Patch(es) patch-tools_clang_include_clang_Analysis_Analyses_PrintfFormatString.h applied cleanly.
*** Error code 1

Stop in /usr/ports/devel/llvm-devel.
*** Error code 1

Stop in /usr/ports/devel/llvm-devel.
--->  Backing up the old version
tar: include/clang/Basic/Release/DiagnosticASTKinds.inc.tmp: Cannot stat: No such file or directory
tar: include/clang/Basic/Release/DiagnosticAnalysisKinds.inc.tmp: Cannot stat: No such file or directory
tar: include/clang/Basic/Release/DiagnosticCommonKinds.inc.tmp: Cannot stat: No such file or directory
tar: include/clang/Basic/Release/DiagnosticDriverKinds.inc.tmp: Cannot stat: No such file or directory
tar: include/clang/Basic/Release/DiagnosticFrontendKinds.inc.tmp: Cannot stat: No such file or directory
tar: include/clang/Basic/Release/DiagnosticGroups.inc.tmp: Cannot stat: No such file or directory
tar: include/clang/Basic/Release/DiagnosticLexKinds.inc.tmp: Cannot stat: No such file or directory
tar: include/clang/Basic/Release/DiagnosticParseKinds.inc.tmp: Cannot stat: No such file or directory
tar: include/clang/Basic/Release/DiagnosticSemaKinds.inc.tmp: Cannot stat: No such file or directory
tar: include/clang/Driver/Release/CC1Options.inc.tmp: Cannot stat: No such file or directory
tar: include/clang/Driver/Release/Options.inc.tmp: Cannot stat: No such file or directory
tar: Error exit delayed from previous errors.
pkg_create: make_dist: tar command failed with code 256
--->  Uninstalling the old version
--->  Deinstalling 'llvm-devel-2.7.r102327'
pkg_delete: file '/usr/local/include/clang/Basic/Release/DiagnosticASTKinds.inc.tmp' doesn't exist
pkg_delete: file '/usr/local/include/clang/Basic/Release/DiagnosticAnalysisKinds.inc.tmp' doesn't exist
pkg_delete: file '/usr/local/include/clang/Basic/Release/DiagnosticCommonKinds.inc.tmp' doesn't exist
pkg_delete: unable to completely remove directory '/usr/local/include/llvm'
pkg_delete: file '/usr/local/include/clang/Driver/Release' doesn't exist
pkg_delete: unable to completely remove directory '/usr/local/include/clang/Driver/Release'
pkg_delete: unable to completely remove directory '/usr/local/include/clang/Driver'
pkg_delete: file '/usr/local/include/clang/Basic/Release' doesn't exist
pkg_delete: unable to completely remove directory '/usr/local/include/clang/Basic/Release'
pkg_delete: unable to completely remove directory '/usr/local/include/clang/Basic'
pkg_delete: unable to completely remove directory '/usr/local/include/clang/AST'
pkg_delete: unable to completely remove directory '/usr/local/include/clang'
pkg_delete: couldn't entirely delete package (perhaps the packing list is
incorrectly specified?)
[Updating the pkgdb <format:bdb_btree> in /var/db/pkg ... - 187 packages found (-1 +0) (...) done]
--->  Installing the new version via the port
===>  Patching for llvm-devel-2.8.r105218_1
===>   llvm-devel-2.8.r105218_1 depends on file: /usr/local/bin/perl5.8.9 - found
===>  Applying FreeBSD patches for llvm-devel-2.8.r105218_1
Ignoring previously applied (or reversed) patch.
2 out of 2 hunks ignored--saving rejects to tools/clang/include/clang/Analysis/Analyses/PrintfFormatString.h.rej
=> Patch patch-tools_clang_include_clang_Analysis_Analyses_PrintfFormatString.h failed to apply cleanly.
*** Error code 1

Stop in /usr/ports/devel/llvm-devel.
*** Error code 1

Stop in /usr/ports/devel/llvm-devel.
*** Error code 1

Stop in /usr/ports/devel/llvm-devel.
===>  Cleaning for llvm-devel-2.8.r105218_1
--->  Cleaning out obsolete shared libraries
418 [11:56] root@vcs:~# clang
zsh: command not found: clang
419 [11:56] root@vcs:~# clang -v
zsh: command not found: clang
420 [11:56] root@vcs:~#
-----

How-To-Repeat: See above.

I used:
cd /usr/ports/devel/llvm-devel
make BOOTSTRAP=yes makesum
portupgrade llvm-devel
Comment 1 Mark Linimon freebsd_committer freebsd_triage 2010-06-01 13:36:31 UTC
Responsible Changed
From-To: freebsd-ports-bugs->ruby

Over to maintainer(s).
Comment 2 Philip M. Gollucci freebsd_committer freebsd_triage 2010-09-10 00:12:20 UTC
Responsible Changed
From-To: ruby->pgollucci

I will take it
Comment 3 Philip M. Gollucci freebsd_committer freebsd_triage 2010-09-24 07:23:27 UTC
Responsible Changed
From-To: pgollucci->freebsd-ports-bugs

going to have enotime for the next 2 weeks, sorry
Comment 4 Steve Price freebsd_committer freebsd_triage 2011-01-03 17:14:45 UTC
Responsible Changed
From-To: freebsd-ports-bugs->ruby

over to maintainer(s)
Comment 5 Steve Wills freebsd_committer freebsd_triage 2011-08-22 00:43:35 UTC
Responsible Changed
From-To: ruby->swills

I'll take it.
Comment 6 Steve Wills freebsd_committer freebsd_triage 2011-08-22 05:06:59 UTC
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

I created a test case by adding a busted patch that would cause a .rej
file to shells/zsh (in a test environment of course) and then bumped the
PORTREVISION so portupgrade would see the port as updated.

Portupgrade attempted to update the port, but failed and didn't
uninstall the existing zsh. So, I wasn't able to reproduce the bug.

This issue may be something specific to the devel/llvm-devel port (I saw
strange issues with that port when trying to build it without
portupgrade) or something that has been fixed in portupgrade since this
PR was opened.

Are you still seeing the issue? If not, I'll close the bug.

Thanks,
Steve
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.17 (FreeBSD)

iQEcBAEBAgAGBQJOUdXjAAoJEPXPYrMgexuhyaUH/RfEUQlV2GUhxqLpFB8qFmyf
iJXuEhbuxKaZ1k1Q9raEDQqH2JjqegZC4xqdQURZk82GISj3d+KFc1nku2V5bun0
k1nrEs7Y2ozSrAswzrlEEDvxKeTW5NQppDCgPkByIuFlzb3YgVB5hNapKN/pXOW5
B2vdFzDw05lYPkCoQKBLylhm1gZpNWYePPDEyOh+Tly3QVmT4HH3303+ontV3jQV
kn2aiIAjqoAKowILtsLhW4Rp+71nC7CW/nzJgQj0DosWlcjaR5beE9h+2aivNL56
NEeA+ixnNroEY+pE8H2jvEl1g7hBrFtQhG6RjqREYUMtxYuRrEZYMIf88Ykiq58=
=wSDy
-----END PGP SIGNATURE-----
Comment 7 Steve Wills freebsd_committer freebsd_triage 2011-10-27 15:44:34 UTC
Responsible Changed
From-To: swills->ruby

Back to the pool
Comment 8 Philip M. Gollucci freebsd_committer freebsd_triage 2012-02-22 05:24:08 UTC
State Changed
From-To: open->suspended

Over to maintainer. 


Comment 9 Philip M. Gollucci freebsd_committer freebsd_triage 2012-02-22 05:24:08 UTC
Responsible Changed
From-To: ruby->freebsd-ports-bugs

Over to maintainer.
Comment 10 Chris Rees freebsd_committer freebsd_triage 2012-04-12 11:02:36 UTC
State Changed
From-To: suspended->open

This should not be suspended.
Comment 11 dfilter service freebsd_committer freebsd_triage 2012-06-02 10:48:59 UTC
bapt        2012-06-02 09:48:45 UTC

  FreeBSD ports repository

  Modified files:
    ports-mgmt/portupgrade-devel Makefile distinfo pkg-descr 
                                 pkg-plist 
  Log:
  Port changes
  - Convert to new options framework
  - Sync pkg-message with devel/portupgrade
  portupgrade changes
  - portupgrade/portinstall -v now lists recursive depends [ports/137958]
  - portupgrade lists new version after upgrade in results
  - Fixed failure being seen as success due to broken script(1) [ports/147242,
    ports/131111]
  - A fixed script(1) is now included for systems < 8.1
  - Expanded pkgng support
  
  PR:             ports/168548 which fixes: ports/137958 ports/147242 ports/131111
  Submitted by:   Bryan Drewery <bryan@shatow.net>
  
  Revision  Changes    Path
  1.286     +14 -4     ports/ports-mgmt/portupgrade-devel/Makefile
  1.195     +2 -2      ports/ports-mgmt/portupgrade-devel/distinfo
  1.24      +1 -2      ports/ports-mgmt/portupgrade-devel/pkg-descr
  1.43      +3 -0      ports/ports-mgmt/portupgrade-devel/pkg-plist
_______________________________________________
cvs-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/cvs-all
To unsubscribe, send any mail to "cvs-all-unsubscribe@freebsd.org"
Comment 12 Baptiste Daroussin freebsd_committer freebsd_triage 2012-06-02 10:49:25 UTC
State Changed
From-To: open->closed

Fixed in portupgrade-devel
Comment 13 dfilter service freebsd_committer freebsd_triage 2012-08-26 04:15:43 UTC
Author: bdrewery
Date: Sun Aug 26 03:15:31 2012
New Revision: 303176
URL: http://svn.freebsd.org/changeset/ports/303176

Log:
  - Update to 2.4.9.8
  
  Changelog:
  
    * Fix MOVED tracking when upgrading ports [1]
    * Track and display deleted ports when upgrading
    * Automatically set DISABLE_CONFLICTS when moving origins
    * Fix crash when running portupgrade inside of a WRKDIR
    * Fix "Frozen string" error with ruby 1.9 when using the
      {BEFORE,AFTER}{INSTALL,DEINSTALL} hooks in pkgtools.conf
    * Fix failure being seen as success due to broken script(1) on
      older systems [2][3]. This is done by installing a more recent
      script(1) into PREFIX/libexec/pkgtools and using it instead.
      Only installed/used on FreeBSD 8.0 and earlier.
  
  PR:		ports/151662 [1], ports/147242 [2],
  		ports/131111 [3]
  Approved by:	eadler (mentor)

Modified:
  head/ports-mgmt/portupgrade/Makefile
  head/ports-mgmt/portupgrade/distinfo
  head/ports-mgmt/portupgrade/pkg-plist

Modified: head/ports-mgmt/portupgrade/Makefile
==============================================================================
--- head/ports-mgmt/portupgrade/Makefile	Sun Aug 26 02:54:49 2012	(r303175)
+++ head/ports-mgmt/portupgrade/Makefile	Sun Aug 26 03:15:31 2012	(r303176)
@@ -6,7 +6,7 @@
 #
 
 PORTNAME=	portupgrade
-PORTVERSION=	2.4.9.7
+PORTVERSION=	2.4.9.8
 PORTEPOCH=	2
 CATEGORIES=	ports-mgmt
 MASTER_SITES=	SF/portupgrade/pkgtools/dist/ \
@@ -29,12 +29,13 @@ BDB4_DESC=	Use Berkeley DB >=2
 
 CONFLICTS_INSTALL=	portupgrade-devel-*
 
+DIST_SUBDIR=	${PORTNAME}
 USE_BZIP2=	yes
 USE_RUBY=	yes
 
 USE_LDCONFIG=	${PREFIX}/lib/compat/pkg
 
-MAKE_ARGS=	PREFIX="${PREFIX}" RUBY="${RUBY}"
+MAKE_ARGS=	PREFIX="${PREFIX}" RUBY="${RUBY}" RUBY_SITELIBDIR="${RUBY_SITELIBDIR}" MKDIR="${MKDIR}"
 
 MAN1=		pkg_deinstall.1 \
 		pkg_fetch.1 \
@@ -76,6 +77,14 @@ RUN_DEPENDS+=	${RUBY_SITEARCHLIBDIR}/bdb
 RUN_DEPENDS+=	${RUBY_SITELIBDIR}/parsedate.rb:${PORTSDIR}/devel/ruby-date2
 .endif
 
+# Need to install working script(1)
+.if ${OSVERSION} < 801000
+PLIST_SUB+=	SCRIPT=""
+MAKE_ENV+=	NEED_COMPAT_SCRIPT=yes
+.else
+PLIST_SUB+=	SCRIPT="@comment "
+.endif
+
 pre-extract:
 .if exists(${RUBY_SITEARCHLIBDIR}/bdb.so) && ${PORT_OPTIONS:MBDB1}
 	@${ECHO_MSG} "================================================================="

Modified: head/ports-mgmt/portupgrade/distinfo
==============================================================================
--- head/ports-mgmt/portupgrade/distinfo	Sun Aug 26 02:54:49 2012	(r303175)
+++ head/ports-mgmt/portupgrade/distinfo	Sun Aug 26 03:15:31 2012	(r303176)
@@ -1,2 +1,2 @@
-SHA256 (pkgtools-2.4.9.7.tar.bz2) = 9aa5eb67fc4a48d721f36491eca45d7a05760886bae768d498b962bf5fc58cd3
-SIZE (pkgtools-2.4.9.7.tar.bz2) = 80323
+SHA256 (portupgrade/pkgtools-2.4.9.8.tar.bz2) = 3368982aa7c27aa754485f546dff7c56715423074709582bbd4705d786058529
+SIZE (portupgrade/pkgtools-2.4.9.8.tar.bz2) = 83214

Modified: head/ports-mgmt/portupgrade/pkg-plist
==============================================================================
--- head/ports-mgmt/portupgrade/pkg-plist	Sun Aug 26 02:54:49 2012	(r303175)
+++ head/ports-mgmt/portupgrade/pkg-plist	Sun Aug 26 03:15:31 2012	(r303176)
@@ -26,6 +26,12 @@ sbin/portversion
 %%RUBY_SITELIBDIR%%/portinfo.rb
 %%RUBY_SITELIBDIR%%/ports.rb
 %%RUBY_SITELIBDIR%%/portsdb.rb
+@dirrmtry %%RUBY_SITELIBDIR%%
+@dirrmtry lib/ruby/site_ruby
+@dirrmtry lib/ruby
+%%SCRIPT%%@exec mkdir -p %D/libexec/pkgtools 2> /dev/null
+%%SCRIPT%%libexec/pkgtools/script
+%%SCRIPT%%@dirrm libexec/pkgtools
 @unexec if cmp -s %D/etc/pkgtools.conf %D/etc/pkgtools.conf.sample; then rm -f %D/etc/pkgtools.conf; fi
 etc/pkgtools.conf.sample
 @exec [ -f %B/pkgtools.conf ] || cp %B/%f %B/pkgtools.conf
_______________________________________________
svn-ports-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-ports-all
To unsubscribe, send any mail to "svn-ports-all-unsubscribe@freebsd.org"