# Changed portmaster behavior?



## SirDice (Apr 27, 2010)

I always build everything I need using `# portmaster -dg <dir/port>`.

Previously, if a dependency was already installed it would only be updated/reinstalled if it was out of date. Currently it seems to _always_ build a port's dependencies, it doesn't matter if one or more dependencies are already installed and the correct version. It will rebuild everything.

When a dependency is already installed and it's up to date portmaster shouldn't rebuild it. It should just continue to build the other dependencies. Unless I force it to rebuild everything.

How do I get the 'old' behavior back?


----------



## dennylin93 (Apr 27, 2010)

Which version of portmaster are you using?


----------



## SirDice (Apr 27, 2010)

Duh. Forgot to post that info.


```
root@build:/usr/ports#portmaster --version

===>>> Version 2.22
```


----------



## DutchDaemon (Apr 27, 2010)

Can't say that I see this:


```
# cd /usr/ports/sysutils/sysinfo
# make build-depends-list
# make run-depends-list
/usr/ports/ports-mgmt/portaudit
/usr/ports/sysutils/dmidecode
# portmaster -dg sysutils/sysinfo
(package gets built, and nothing else)
===>>> Creating a package for new version sysinfo-1.0.1
	===>>> Package saved to /usr/ports/packages/All
```

Tried again, now deinstalling the port before building the package:


```
# pkg_delete sysinfo-1.0.1
# portmaster -dg sysutils/sysinfo
(package gets built, and nothing else)
===>>> Creating a package for new version sysinfo-1.0.1
	===>>> Package saved to /usr/ports/packages/All
# cd /usr/ports/packages/All/
# ls -al
sysinfo-1.0.1.tbz
```

That's it ..

Do you see ports-mgmt/portaudit and sysutils/dmidecode get built and packaged as well?

Anything interesting in your .rc file?


----------



## dennylin93 (Apr 27, 2010)

I'm also using 2.22, and portmaster works as expected.


----------



## SirDice (Apr 27, 2010)

Hmm... That's odd. Seems to work for sysinfo:


```
root@build:/usr/ports#portmaster -dg sysutils/sysinfo/

===>>> Port directory: /usr/ports/sysutils/sysinfo

===>>> Gathering distinfo list for installed ports

===>>> Launching 'make checksum' for sysutils/sysinfo in background
cd /usr/ports/sysutils/sysinfo && /usr/bin/make config;
===>>> Gathering dependency list for sysutils/sysinfo from ports
===>>> Starting recursive 'make config' check
===>>> Launching child to update ports-mgmt/portaudit
        sysutils/sysinfo >> ports-mgmt/portaudit

===>>> Port directory: /usr/ports/ports-mgmt/portaudit
===>>> Gathering dependency list for ports-mgmt/portaudit from ports
===>>> No dependencies for ports-mgmt/portaudit
===>>> Continuing 'make config' dependency check for sysutils/sysinfo
===>>> Recursive 'make config' check complete for sysutils/sysinfo

===>>> The following actions will be taken if you choose to proceed:
        Install sysutils/sysinfo
        Install ports-mgmt/portaudit

===>>> Proceed? y/n [y]

===>>> Starting build for sysutils/sysinfo <<<===

===>>> Starting check for build dependencies
===>>> Gathering dependency list for sysutils/sysinfo from ports
===>>> No dependencies for sysutils/sysinfo
===>  Cleaning for sysinfo-1.0.1

===>  Vulnerability check disabled, database not found
===>  Found saved configuration for sysinfo-1.0.1
===>  Extracting for sysinfo-1.0.1
=> MD5 Checksum OK for sysinfo-1.0.1.tar.gz.
=> SHA256 Checksum OK for sysinfo-1.0.1.tar.gz.
===>  Patching for sysinfo-1.0.1
===>  Configuring for sysinfo-1.0.1

===>>> Starting check for runtime dependencies
===>>> Gathering dependency list for sysutils/sysinfo from ports
===>>> Starting dependency check
===>>> Launching child to update ports-mgmt/portaudit
        sysutils/sysinfo >> ports-mgmt/portaudit

===>>> Port directory: /usr/ports/ports-mgmt/portaudit
===>>> Starting check for build dependencies
===>>> Gathering dependency list for ports-mgmt/portaudit from ports
===>>> No dependencies for ports-mgmt/portaudit
===>  Cleaning for portaudit-0.5.14

===>  Vulnerability check disabled, database not found
===>  Extracting for portaudit-0.5.14
===>  Patching for portaudit-0.5.14
===>  Configuring for portaudit-0.5.14
===>  Building for portaudit-0.5.14

===>>> Starting check for runtime dependencies
===>>> Gathering dependency list for ports-mgmt/portaudit from ports
===>>> No dependencies for ports-mgmt/portaudit
===>  Installing for portaudit-0.5.14
===>   Generating temporary packing list
===>  Checking if ports-mgmt/portaudit already installed

===>  To check your installed ports for known vulnerabilities now, do:

      /usr/local/sbin/portaudit -Fda

===>   Compressing manual pages for portaudit-0.5.14
===>   Registering installation for portaudit-0.5.14

===>>> Creating a package for new version portaudit-0.5.14
        ===>>> Package saved to /usr/ports/packages/All

===>  Cleaning for portaudit-0.5.14

===>>> Installation of ports-mgmt/portaudit (portaudit-0.5.14) succeeded

===>>> Returning to dependency check for sysutils/sysinfo
===>>> Dependency check complete for sysutils/sysinfo
===>  Installing for sysinfo-1.0.1
===>   Generating temporary packing list
===>  Checking if sysutils/sysinfo already installed
install  -o root -g wheel -m 555 /tmp/build//usr/ports/sysutils/sysinfo/work/sysinfo/sysinfo /usr/local/sbin
install  -o root -g wheel -m 444 /tmp/build//usr/ports/sysutils/sysinfo/work/sysinfo/sysinfo.conf /usr/local/etc/sysinfo.conf.sample
/bin/mkdir -p /usr/local/share/sysinfo
install  -o root -g wheel -m 444 /tmp/build//usr/ports/sysutils/sysinfo/work/sysinfo/common.subr /usr/local/share/sysinfo
install  -o root -g wheel -m 444 /tmp/build//usr/ports/sysutils/sysinfo/work/sysinfo/LICENCE /usr/local/share/sysinfo
(cd /tmp/build//usr/ports/sysutils/sysinfo/work/sysinfo && /bin/sh -c '(/usr/bin/find -d $0 $2 | /usr/bin/cpio -dumpl $1 >/dev/null  2>&1) &&  
/usr/sbin/chown -R root:wheel $1 &&  /usr/bin/find -d $0 $2 -type d -exec chmod 755 $1/{} \; &&  /usr/bin/find -d $0 $2 -type f -exec chmod 
555 $1/{} \;' -- modules /usr/local/share/sysinfo)
install  -o root -g wheel -m 444 /tmp/build//usr/ports/sysutils/sysinfo/work/sysinfo/doc/sysinfo.conf.5 /usr/local/man/man5
install  -o root -g wheel -m 444 /tmp/build//usr/ports/sysutils/sysinfo/work/sysinfo/doc/sysinfo.8 /usr/local/man/man8
===>   Compressing manual pages for sysinfo-1.0.1
===>   Registering installation for sysinfo-1.0.1

===>>> Creating a package for new version sysinfo-1.0.1
        ===>>> Package saved to /usr/ports/packages/All

===>  Cleaning for sysinfo-1.0.1

===>>> The following actions were performed:
        Installation of ports-mgmt/portaudit (portaudit-0.5.14)
        Installation of sysutils/sysinfo (sysinfo-1.0.1)

root@build:/usr/ports#pkg_delete -x sysinfo
root@build:/usr/ports#portmaster -dg sysutils/sysinfo/

===>>> Port directory: /usr/ports/sysutils/sysinfo

===>>> Gathering distinfo list for installed ports

===>>> Launching 'make checksum' for sysutils/sysinfo in background
===>>> Gathering dependency list for sysutils/sysinfo from ports
===>>> Starting recursive 'make config' check
===>>> Recursive 'make config' check complete for sysutils/sysinfo

===>>> Starting build for sysutils/sysinfo <<<===

===>>> All dependencies are up to date

===>  Cleaning for sysinfo-1.0.1

===>  Vulnerability check disabled, database not found
===>  Found saved configuration for sysinfo-1.0.1
===>  Extracting for sysinfo-1.0.1
=> MD5 Checksum OK for sysinfo-1.0.1.tar.gz.
=> SHA256 Checksum OK for sysinfo-1.0.1.tar.gz.
===>  Patching for sysinfo-1.0.1
===>  Configuring for sysinfo-1.0.1
===>  Installing for sysinfo-1.0.1
===>   Generating temporary packing list
===>  Checking if sysutils/sysinfo already installed
install  -o root -g wheel -m 555 /tmp/build//usr/ports/sysutils/sysinfo/work/sysinfo/sysinfo /usr/local/sbin
install  -o root -g wheel -m 444 /tmp/build//usr/ports/sysutils/sysinfo/work/sysinfo/sysinfo.conf /usr/local/etc/sysinfo.conf.sample
/bin/mkdir -p /usr/local/share/sysinfo
install  -o root -g wheel -m 444 /tmp/build//usr/ports/sysutils/sysinfo/work/sysinfo/common.subr /usr/local/share/sysinfo
install  -o root -g wheel -m 444 /tmp/build//usr/ports/sysutils/sysinfo/work/sysinfo/LICENCE /usr/local/share/sysinfo
(cd /tmp/build//usr/ports/sysutils/sysinfo/work/sysinfo && /bin/sh -c '(/usr/bin/find -d $0 $2 | /usr/bin/cpio -dumpl $1 >/dev/null  2>&1) &&  
/usr/sbin/chown -R root:wheel $1 &&  /usr/bin/find -d $0 $2 -type d -exec chmod 755 $1/{} \; &&  /usr/bin/find -d $0 $2 -type f -exec chmod 
555 $1/{} \;' -- modules /usr/local/share/sysinfo)
install  -o root -g wheel -m 444 /tmp/build//usr/ports/sysutils/sysinfo/work/sysinfo/doc/sysinfo.conf.5 /usr/local/man/man5
install  -o root -g wheel -m 444 /tmp/build//usr/ports/sysutils/sysinfo/work/sysinfo/doc/sysinfo.8 /usr/local/man/man8
===>   Compressing manual pages for sysinfo-1.0.1
===>   Registering installation for sysinfo-1.0.1

===>>> Creating a package for new version sysinfo-1.0.1
        ===>>> Package saved to /usr/ports/packages/All

===>  Cleaning for sysinfo-1.0.1

Terminated
Terminated
===>>> Installation of sysutils/sysinfo (sysinfo-1.0.1) complete

root@build:/usr/ports#
```


----------



## SirDice (Apr 27, 2010)

I noticed it after I built xfce4 (with gconf support and a few other knobs turned on) I started building gnome2-lite. Big parts of gnome2 were already installed with the xfce4 installation and it started rebuilding those. It's a bit much to paste here. Perhaps I'll start over and try again, keeping a log this time.


----------



## dennylin93 (Apr 27, 2010)

DD also mentioned the config file of portmaster. It might be the problem.


----------



## SirDice (Apr 27, 2010)

dennylin93 said:
			
		

> DD also mentioned the config file of portmaster. It might be the problem.



It's default. I haven't changed it and I always start building all my ports in a clean jail.


----------



## DutchDaemon (Apr 27, 2010)

Well, it's either the .cf, make.conf or interesting environment variables, I guess ..


----------



## SirDice (Apr 27, 2010)

I'll just start over and pay more attention this time


----------



## SirDice (Apr 29, 2010)

Started over, installed xorg-minimal, xfce4 and gnome2-lite. Works as expected. 

Must have been my own screw up somewhere.


----------

