| From 7d133e58b27253ebc1bcfc16fa45ef91125ccde9 Mon Sep 17 00:00:00 2001 |
| From: Paul Varner <fuzzyray@gentoo.org> |
| Date: Tue, 20 Nov 2012 11:22:09 -0600 |
| Subject: [PATCH 1/2] Change ufed to use EPREFIX for prefix installs. |
| |
| --- |
| Portage.pm | 26 ++++++++++++++++++-------- |
| ufed-curses-help.c | 7 +++---- |
| ufed.8 | 29 +++++++++++++++-------------- |
| ufed.pl.in | 6 +++--- |
| 4 files changed, 39 insertions(+), 29 deletions(-) |
| |
| diff --git a/Portage.pm b/Portage.pm |
| index 0b02cab..c7e236d 100644 |
| --- a/Portage.pm |
| +++ b/Portage.pm |
| @@ -15,7 +15,9 @@ our %default_flags; |
| our %make_conf_flags; |
| our %archs; |
| our %all_flags; |
| +our $eprefix; |
| |
| +sub get_eprefix(); |
| sub have_package($); |
| sub merge(\%%); |
| sub merge_env(\%); |
| @@ -30,6 +32,7 @@ sub read_profiles(); |
| sub read_sh($); |
| sub read_use_mask(); |
| |
| +get_eprefix; |
| read_packages; |
| read_profiles; |
| read_use_mask; |
| @@ -54,6 +57,13 @@ if($lastorder ne 'conf') { |
| die "Sorry, USE_ORDER without make.conf overriding global USE flags are not currently supported by ufed.\n"; |
| } |
| |
| + |
| +sub get_eprefix() { |
| + $eprefix = `portageq envvar EPREFIX 2>&1`; |
| + die "Couldn't determine EPREFIX from Portage" if $? != 0; |
| + chomp($eprefix); |
| +} |
| + |
| sub have_package($) { |
| my ($cp) = @_; |
| return $packages{$cp}; |
| @@ -130,8 +140,8 @@ sub read_archs() { |
| } |
| |
| sub read_make_conf() { |
| - my %env = read_sh "/etc/make.conf"; |
| - merge (%env, read_sh('/etc/portage/make.conf')); |
| + my %env = read_sh "$eprefix/etc/make.conf"; |
| + merge (%env, read_sh("$eprefix/etc/portage/make.conf")); |
| merge %make_conf_flags, %{$env{USE}} if exists $env{USE}; |
| @portagedirs = $environment{PORTDIR}; |
| push @portagedirs, split ' ', $environment{PORTDIR_OVERLAY} if defined $environment{PORTDIR_OVERLAY}; |
| @@ -145,13 +155,13 @@ sub read_make_defaults() { |
| } |
| |
| sub read_make_globals() { |
| - for my $dir(@profiles, '/usr/share/portage/config') { |
| + for my $dir(@profiles, "$eprefix/usr/share/portage/config") { |
| read_sh "$dir/make.globals"; |
| } |
| } |
| |
| sub read_packages() { |
| - die "Couldn't read /var/db/pkg\n" unless opendir my $pkgdir, '/var/db/pkg'; |
| + die "Couldn't read $eprefix/var/db/pkg\n" unless opendir my $pkgdir, "$eprefix/var/db/pkg"; |
| while(my $cat = readdir $pkgdir) { |
| next if $cat eq '.' or $cat eq '..'; |
| next unless opendir my $catdir, "/var/db/pkg/$cat"; |
| @@ -199,16 +209,16 @@ sub read_packages() { |
| } |
| |
| sub read_profiles() { |
| - $_ = readlink '/etc/make.profile'; |
| - $_ = readlink '/etc/portage/make.profile' if not defined $_; |
| - die "/etc\{,/portage\}/make.profile is not a symlink\n" if not defined $_; |
| + $_ = readlink "$eprefix/etc/make.profile"; |
| + $_ = readlink "$eprefix/etc/portage/make.profile" if not defined $_; |
| + die "$eprefix/etc\{,/portage\}/make.profile is not a symlink\n" if not defined $_; |
| @profiles = norm_path '/etc', $_; |
| for (my $i = -1; $i >= -@profiles; $i--) { |
| for(noncomments "$profiles[$i]/parent") { |
| splice @profiles, $i, 0, norm_path $profiles[$i], $_; |
| } |
| } |
| - push @profiles, '/etc/portage/profile'; |
| + push @profiles, "$eprefix/etc/portage/profile"; |
| } |
| |
| sub read_sh($) { |
| diff --git a/ufed-curses-help.c b/ufed-curses-help.c |
| index 19679bb..79bd35e 100644 |
| --- a/ufed-curses-help.c |
| +++ b/ufed-curses-help.c |
| @@ -40,11 +40,10 @@ static void init_lines(void) { |
| "Each USE flag has a 2 character descriptor that represents the two " |
| "ways a use flag can be set.", |
| "", |
| -"The 1st char is the setting from the /etc/make.profile/make.defaults " |
| -"file. These are the defaults for Gentoo as a whole. These should not be " |
| -"changed.", |
| +"The 1st char is the setting from the make.defaults file. These are " |
| +"the defaults for Gentoo as a whole. These should not be changed.", |
| "", |
| -"The 2nd char is the settings from the /etc/make.conf file. these are " |
| +"The 2nd char is the settings from the make.conf file. these are " |
| "the only ones that should be changed by the user and these are the ones " |
| "that ufed changes.", |
| "", |
| diff --git a/ufed.8 b/ufed.8 |
| index 7d7fe50..4c55c29 100644 |
| --- a/ufed.8 |
| +++ b/ufed.8 |
| @@ -12,15 +12,14 @@ UFED attempts to show you where a particular use setting came from. Each USE |
| flag has a 3 character descriptor that represents the three ways a use flag can |
| be set. |
| |
| -The 1st char is the setting from the /etc/make.profile/make.defaults file. |
| -These are the defaults for Gentoo as a whole. These should not be changed. |
| +The 1st char is the setting from the make.defaults file. These are the defaults |
| +for Gentoo as a whole. These should not be changed. |
| |
| -The 2nd char is the setting from the /etc/make.profile/use.defaults file. These |
| -will change as packages are added and removes from the system. |
| +The 2nd char is the setting from the use.defaults file. These will change as |
| +packages are added and removes from the system. |
| |
| -The 3rd char is the settings from the /etc/make.conf file. these are the only |
| -ones that should be changed by the user and these are the ones that UFED |
| -changes. |
| +The 3rd char is the settings from the make.conf file. these are the only ones |
| +that should be changed by the user and these are the ones that UFED changes. |
| |
| If the character is a + then that USE flag was set in that file, if it is a |
| space then the flag was not mentioned in that file and if it is a - then that |
| @@ -64,25 +63,27 @@ Please report bugs via http://bugs.gentoo.org/ |
| .BR make.conf (5) |
| .SH "FILES" |
| .TP |
| -\fB/etc/make.conf\fR |
| +\fB@GENTOO_PORTAGE_EPREFIX@/etc/make.conf\fR |
| +\fB@GENTOO_PORTAGE_EPREFIX@/etc/portage/make.conf\fR |
| Contains user specified USE flags |
| .TP |
| -\fB/etc/make.conf.old \fR |
| +\fB@GENTOO_PORTAGE_EPREFIX@/etc/make.conf.old \fR |
| +\fB@GENTOO_PORTAGE_EPREFIX@/etc/portage/make.conf.old \fR |
| This is where ufed places a backup of your make.conf file. |
| .TP |
| -\fB/etc/make.profile/make.defaults\fR |
| +\fB@GENTOO_PORTAGE_EPREFIX@/etc/make.profile/make.defaults\fR |
| Contains system default USE flags |
| .TP |
| -\fB/etc/make.profile/use.defaults\fR |
| +\fB@GENTOO_PORTAGE_EPREFIX@/etc/make.profile/use.defaults\fR |
| Provides an automatic ebuild to USE flag mapping ('auto' flags) |
| .TP |
| -\fB/etc/make.profile/use.mask\fR |
| +\fB@GENTOO_PORTAGE_EPREFIX@/etc/make.profile/use.mask\fR |
| Restricted USE flags |
| .TP |
| -\fB/usr/portage/profiles/use.desc\fR |
| +\fB@GENTOO_PORTAGE_EPREFIX@/usr/portage/profiles/use.desc\fR |
| Description strings for global USE flags |
| .TP |
| -\fB/usr/portage/profiles/use.local.desc\fR |
| +\fB@GENTOO_PORTAGE_EPREFIX@/usr/portage/profiles/use.local.desc\fR |
| Description strings for local USE flags |
| .SH "AUTHORS" |
| Robin Johnson <robbat2@gentoo.org> |
| diff --git a/ufed.pl.in b/ufed.pl.in |
| index 7493147..3435dae 100644 |
| --- a/ufed.pl.in |
| +++ b/ufed.pl.in |
| @@ -29,7 +29,7 @@ for(keys %Portage::all_flags) { |
| @{$use_descriptions{$_}} = "(Unknown)" |
| if not exists $use_descriptions{$_}; |
| } |
| -@{$use_descriptions{'-*'}} = 'Never enable any flags other than those specified in /etc/make.conf'; |
| +@{$use_descriptions{'-*'}} = 'Never enable any flags other than those specified in make.conf'; |
| |
| for(@Portage::archs) { |
| delete $Portage::default_flags{$_}; |
| @@ -155,8 +155,8 @@ sub save_flags(@) { |
| my (@flags) = @_; |
| my $contents; |
| |
| - my $makeconf_name = '/etc/portage/make.conf'; |
| - $makeconf_name = '/etc/make.conf' unless(-r $makeconf_name); |
| + my $makeconf_name = "$Portage::eprefix/etc/portage/make.conf"; |
| + $makeconf_name = "$Portage::eprefix/etc/make.conf" unless(-r $makeconf_name); |
| { |
| open my $makeconf, '<', $makeconf_name or die "Couldn't open $makeconf_name\n"; |
| open my $makeconfold, '>', $makeconf_name . '.old' or die "Couldn't open $makeconf_name.old\n"; |
| -- |
| 1.8.0 |
| |