public inbox for gentoo-user@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-user] Gentoo install script
@ 2012-06-28  2:13 Michael Mol
  2012-07-02  0:28 ` [gentoo-user] " Michael Mol
  0 siblings, 1 reply; 6+ messages in thread
From: Michael Mol @ 2012-06-28  2:13 UTC (permalink / raw
  To: gentoo-user

Very rough, and very much a works-for-me thing, but I thought I'd share.

https://github.com/mikemol/gentoo-install

I wrote it to ease the pain of the "install-configure-build" cycle I
was going through to figure out what was breaking glibc.

-- 
:wq



^ permalink raw reply	[flat|nested] 6+ messages in thread

* [gentoo-user] Re: Gentoo install script
  2012-06-28  2:13 [gentoo-user] Gentoo install script Michael Mol
@ 2012-07-02  0:28 ` Michael Mol
  2012-07-04  5:20   ` Kaddeh
  2012-07-04 16:53   ` Mark Knecht
  0 siblings, 2 replies; 6+ messages in thread
From: Michael Mol @ 2012-07-02  0:28 UTC (permalink / raw
  To: gentoo-user

On Wed, Jun 27, 2012 at 10:13 PM, Michael Mol <mikemol@gmail.com> wrote:
> Very rough, and very much a works-for-me thing, but I thought I'd share.
>
> https://github.com/mikemol/gentoo-install
>
> I wrote it to ease the pain of the "install-configure-build" cycle I
> was going through to figure out what was breaking glibc.

Just a bit of a followup. I've got most of the bugs worked out, and
I'm very pleased with it. I've used it to get through most of the
install sequence for inara, and it's currently on package 113/158 of
its second pass of 'emerge -e @world'.

If anyone else gets around to trying it, let me know. :)

-- 
:wq



^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [gentoo-user] Re: Gentoo install script
  2012-07-02  0:28 ` [gentoo-user] " Michael Mol
@ 2012-07-04  5:20   ` Kaddeh
  2012-07-04 20:06     ` Michael Mol
  2012-07-04 16:53   ` Mark Knecht
  1 sibling, 1 reply; 6+ messages in thread
From: Kaddeh @ 2012-07-04  5:20 UTC (permalink / raw
  To: gentoo-user

[-- Attachment #1: Type: text/plain, Size: 3607 bytes --]

Very well done, reminded me of some code that I wrote (poorly, I might add)
but, I dug it up and found some changes that you might be able to implement
instead of lines and lines of static configs.  That being said, take some
of these changes into consideration.

Dynamic detection of drives and partitions:

# Get Existing Drives
existing_drives=$(fdisk -l | grep /dev | grep -i disk | cut -c11-13)

# Set default drive
default_drive=$(fdisk -l | grep --max-count=1 /dev | cut -c11-13)

echo -e "What drive do you want to partition? [$existing_drives]: \c"
read drive

and then creating the partition table later:

# Make Drive Selection
if [ "$drive" == "" ]
then
	selected_drive=$default_drive
else
	# Verify Drive Exists
	does_exist=$(fdisk -l | grep --max-count=1 -ci $drive)

	if [ "$does_exist" == "1" ]
	then
		selected_drive=$drive
	else
		echo -e "The selected drive" $drive "does not exist.  Using"
$default_drive "instead."
		selected_drive=$default_drive
	fi
fi

num_partitions=$(fdisk -l | grep ^/dev | grep -ic $selected_drive)

echo "There are" $num_partitions "partitions on" $selected_drive

partitions=1

# Clear existing partition file
rm -rf partition_table
touch partition_table

while [ "$partitions" -le "$num_partitions" ]
do
	# Find partition numbers
	edit_partitions=$(fdisk -l | grep ^/dev/$selected_drive | cut -c9)
	
	# Parse out extra partitons
	if [ "$partitions" == "1" ]
	then
		work_partition=$(echo -e $edit_partitions | cut -c$partitions)
		# Write to partition_table file
		echo -e "d\n$work_partition" >> partition_table
	else
		if [ "$partitions_cut" == "" ]
		then
			# If First Partition after partition 1, cut off $partitions + 1
			partitions_cut=$(($partitions+1))
		else
			partitions_cut=$(($partitions_cut+1))
		fi
		work_partition=$(echo -e $edit_partitions | cut -c$partitions_cut)
		# Write to partition_table file
		echo -e "d\n$work_partition" >> partition_table
		((partitions_cut += 1))
	fi
	((partitions += 1))
	
done

# build the rest of the table
# Get Total System Memory
total_mem=$(cat /proc/meminfo | grep -i memtotal | cut -c16- | sed s/\
// | sed s/kB//)
swap_space=$(expr $(expr $total_mem + $total_mem) / 1024)

# Write first partition to file
echo -e "n\np\n1\n\n+100M\n" >> partition_table

# Write Swap Space (double system memory)
echo -e "n\np\n2\n\n+"$swap_space"M\n">> partition_table

# Write / partition to file
echo -e "n\np\n3\n\n\n" >> partition_table

# Write partition setting to file and drive write
echo -e "a\n1\nt\n2\n82\nw\n" >> partition_table

# Set drive number variables
boot_drive=$(echo $selected_drive"1")
swap_drive=$(echo $selected_drive"2")
root_drive=$(echo $selected_drive"3")

# KEEP THIS COMMENTED OUT BELLOW HERE
fdisk /dev/$selected_drive < partition_table

Mainly due to the fact that you statically set the UUIDs of the drive that
you want to use.

Cheers,
Kad

On Sun, Jul 1, 2012 at 5:28 PM, Michael Mol <mikemol@gmail.com> wrote:

> On Wed, Jun 27, 2012 at 10:13 PM, Michael Mol <mikemol@gmail.com> wrote:
> > Very rough, and very much a works-for-me thing, but I thought I'd share.
> >
> > https://github.com/mikemol/gentoo-install
> >
> > I wrote it to ease the pain of the "install-configure-build" cycle I
> > was going through to figure out what was breaking glibc.
>
> Just a bit of a followup. I've got most of the bugs worked out, and
> I'm very pleased with it. I've used it to get through most of the
> install sequence for inara, and it's currently on package 113/158 of
> its second pass of 'emerge -e @world'.
>
> If anyone else gets around to trying it, let me know. :)
>
> --
> :wq
>
>

[-- Attachment #2: Type: text/html, Size: 4795 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [gentoo-user] Re: Gentoo install script
  2012-07-02  0:28 ` [gentoo-user] " Michael Mol
  2012-07-04  5:20   ` Kaddeh
@ 2012-07-04 16:53   ` Mark Knecht
  2012-07-04 20:15     ` Michael Mol
  1 sibling, 1 reply; 6+ messages in thread
From: Mark Knecht @ 2012-07-04 16:53 UTC (permalink / raw
  To: gentoo-user

On Sun, Jul 1, 2012 at 5:28 PM, Michael Mol <mikemol@gmail.com> wrote:
> On Wed, Jun 27, 2012 at 10:13 PM, Michael Mol <mikemol@gmail.com> wrote:
>> Very rough, and very much a works-for-me thing, but I thought I'd share.
>>
>> https://github.com/mikemol/gentoo-install
>>
>> I wrote it to ease the pain of the "install-configure-build" cycle I
>> was going through to figure out what was breaking glibc.
>
> Just a bit of a followup. I've got most of the bugs worked out, and
> I'm very pleased with it. I've used it to get through most of the
> install sequence for inara, and it's currently on package 113/158 of
> its second pass of 'emerge -e @world'.
>
> If anyone else gets around to trying it, let me know. :)
>
> --
> :wq
>

Hi Michael,
   Looks interesting. From reading the code it looks like this was a
(proper) reaction to rebuilding the two machines you recently had
trouble with, right?

   Not sure when I'll get to it but I'll likely give it a try building
a VM in Virtualbox as a test.

   Thanks for doing the heavy lifting and posting the work output.

Cheers,
Mark



^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [gentoo-user] Re: Gentoo install script
  2012-07-04  5:20   ` Kaddeh
@ 2012-07-04 20:06     ` Michael Mol
  0 siblings, 0 replies; 6+ messages in thread
From: Michael Mol @ 2012-07-04 20:06 UTC (permalink / raw
  To: gentoo-user

On Wed, Jul 4, 2012 at 1:20 AM, Kaddeh <kaddeh@gmail.com> wrote:
> Very well done, reminded me of some code that I wrote (poorly, I might add)
> but, I dug it up and found some changes that you might be able to implement
> instead of lines and lines of static configs.  That being said, take some of
> these changes into consideration.
>
> Dynamic detection of drives and partitions:
>
> # Get Existing Drives
> existing_drives=$(fdisk -l | grep /dev | grep -i disk | cut -c11-13)
>
> # Set default drive
> default_drive=$(fdisk -l | grep --max-count=1 /dev | cut -c11-13)
>
> echo -e "What drive do you want to partition? [$existing_drives]: \c"
> read drive
>
> and then creating the partition table later:
>
> # Make Drive Selection
> if [ "$drive" == "" ]
> then
> 	selected_drive=$default_drive
> else
> 	# Verify Drive Exists
> 	does_exist=$(fdisk -l | grep --max-count=1 -ci $drive)
>
> 	if [ "$does_exist" == "1" ]
> 	then
> 		selected_drive=$drive
> 	else
> 		echo -e "The selected drive" $drive "does not exist.  Using"
> $default_drive "instead."
> 		selected_drive=$default_drive
> 	fi
> fi
>
> num_partitions=$(fdisk -l | grep ^/dev | grep -ic $selected_drive)
>
> echo "There are" $num_partitions "partitions on" $selected_drive
>
> partitions=1
>
> # Clear existing partition file
> rm -rf partition_table
> touch partition_table
>
> while [ "$partitions" -le "$num_partitions" ]
> do
> 	# Find partition numbers
> 	edit_partitions=$(fdisk -l | grep ^/dev/$selected_drive | cut -c9)
> 	
> 	# Parse out extra partitons
> 	if [ "$partitions" == "1" ]
> 	then
> 		work_partition=$(echo -e $edit_partitions | cut -c$partitions)
> 		# Write to partition_table file
> 		echo -e "d\n$work_partition" >> partition_table
> 	else
> 		if [ "$partitions_cut" == "" ]
> 		then
> 			# If First Partition after partition 1, cut off $partitions + 1
> 			partitions_cut=$(($partitions+1))
> 		else
> 			partitions_cut=$(($partitions_cut+1))
> 		fi
> 		work_partition=$(echo -e $edit_partitions | cut -c$partitions_cut)
> 		# Write to partition_table file
> 		echo -e "d\n$work_partition" >> partition_table
> 		((partitions_cut += 1))
> 	fi
> 	((partitions += 1))
> 	
> done
>
> # build the rest of the table
> # Get Total System Memory
> total_mem=$(cat /proc/meminfo | grep -i memtotal | cut -c16- | sed s/\ // |
> sed s/kB//)
> swap_space=$(expr $(expr $total_mem + $total_mem) / 1024)
>
> # Write first partition to file
> echo -e "n\np\n1\n\n+100M\n" >> partition_table
>
> # Write Swap Space (double system memory)
> echo -e "n\np\n2\n\n+"$swap_space"M\n">> partition_table
>
> # Write / partition to file
> echo -e "n\np\n3\n\n\n" >> partition_table
>
> # Write partition setting to file and drive write
> echo -e "a\n1\nt\n2\n82\nw\n" >> partition_table
>
> # Set drive number variables
> boot_drive=$(echo $selected_drive"1")
> swap_drive=$(echo $selected_drive"2")
> root_drive=$(echo $selected_drive"3")
>
> # KEEP THIS COMMENTED OUT BELLOW HERE
> fdisk /dev/$selected_drive < partition_table
>
> Mainly due to the fact that you statically set the UUIDs of the drive that
> you want to use.
>
> Cheers,
> Kad

Thank you very much.

I'd gladly entertain a pull request if you'd like to integrate it. I'm
not doing much in the way of active development on the script until I
have either (or both) of my machines operational again; they're almost
there, but I'm a sticking point with the 3.3.8 kernel, got past that,
and have now discovered that stable genkernel and stable
gentoo-sources don't play well together. (Because stable genkernel is
using a slightly older version of busybox which doesn't know about
some moved kernel header files). That stuff is slowly moving on b.g.o,
and I'm slowly working around at home. It's only a matter of time, of
which nobody seems to have enough...

-- 
:wq



^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [gentoo-user] Re: Gentoo install script
  2012-07-04 16:53   ` Mark Knecht
@ 2012-07-04 20:15     ` Michael Mol
  0 siblings, 0 replies; 6+ messages in thread
From: Michael Mol @ 2012-07-04 20:15 UTC (permalink / raw
  To: gentoo-user

On Wed, Jul 4, 2012 at 12:53 PM, Mark Knecht <markknecht@gmail.com> wrote:
> On Sun, Jul 1, 2012 at 5:28 PM, Michael Mol <mikemol@gmail.com> wrote:
>> On Wed, Jun 27, 2012 at 10:13 PM, Michael Mol <mikemol@gmail.com> wrote:
>>> Very rough, and very much a works-for-me thing, but I thought I'd share.
>>>
>>> https://github.com/mikemol/gentoo-install
>>>
>>> I wrote it to ease the pain of the "install-configure-build" cycle I
>>> was going through to figure out what was breaking glibc.
>>
>> Just a bit of a followup. I've got most of the bugs worked out, and
>> I'm very pleased with it. I've used it to get through most of the
>> install sequence for inara, and it's currently on package 113/158 of
>> its second pass of 'emerge -e @world'.
>>
>> If anyone else gets around to trying it, let me know. :)
>>
>> --
>> :wq
>>
>
> Hi Michael,
>    Looks interesting. From reading the code it looks like this was a
> (proper) reaction to rebuilding the two machines you recently had
> trouble with, right?

Indeed. Inara and kaylee are still incomplete, but the script at least
helped me get to a working, up-to-date chroot environment, and that's
a major improvement over where I was.

>
>    Not sure when I'll get to it but I'll likely give it a try building
> a VM in Virtualbox as a test.

I can tell you right now that you'll hit a circular dependency problem
toward the end, where it starts installing what I'd call "comfort
tools." The general(ish) solution is probably going to be a two-pass
emerge. One with USE="-gtk", followed by a one-two sequence without
that. It's a typical gtk->cups->avahi cyclic dependency, and since gtk
is the most-core element in the cycle, I figure it probably it'll be
part of most cyclic dependency problems that might crop up in the
future, so suppressing it likely covers the most ground. (By the same
reasoning, it's probably appropriate to include -qt, -gnome and -kde
in that first pass, too.)

>
>    Thanks for doing the heavy lifting and posting the work output.

Np. It beat the *pants* off of manually trying different CFLAGS to
figure out why glibc was puking. I only had to go through the manual
steps twice before I got sick of it and wrote the bulk of the script
in a couple hours. The rest has mostly been letting the thing run,
discover where I missed something, modify the script, and let it run
again.

-- 
:wq



^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2012-07-04 20:17 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-06-28  2:13 [gentoo-user] Gentoo install script Michael Mol
2012-07-02  0:28 ` [gentoo-user] " Michael Mol
2012-07-04  5:20   ` Kaddeh
2012-07-04 20:06     ` Michael Mol
2012-07-04 16:53   ` Mark Knecht
2012-07-04 20:15     ` Michael Mol

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox