The gentoo prefix portage throws up errors about man.ecompress.dir conflicts. When observed closely, it also threw up errors about xargs not recognisng -r flag. Thats because the default xargs doesn't support gnu extensions. So we need to emerge findutils. THere is a catch though. it fails too. you need to comment out the line that stops locate being built. and then do an ebuild findutils-
Tuesday, May 20, 2008
portage on mac
Thursday, December 01, 2005
LFS Profile for package user
Here is a page from LFS profile I created. It might help you modify the other pages. I'll put up everything shortly after I find a file host that doesn't mind hot linking.
coreutils.xml1 <?xml version="1.0" encoding="iso-8859-1"?> 2 <!DOCTYPE alfs SYSTEM "../DTD/ALFS.dtd" 3 [ 4 <!ENTITY % general_entities SYSTEM "../config/general.ent"> 5 <!ENTITY % package_entities SYSTEM "../config/package.ent"> 6 7 %general_entities; 8 %package_entities; 9 ]> 10 <alfs> 11 <package name="coreutils" version="&coreutils-version;"> 12 <stage name="Adding the Package User"> 13 <execute command="add_package_user"> 14 <param>&coreutils-version;</param> 15 <param>coreutils</param> 16 <param>10001</param> 17 <param>19999</param> 18 <param>coreutils</param> 19 <param>10001</param> 20 <param>19999</param> 21 </execute> 22 </stage> 23 <stage name="Unpacking"> 24 <stageinfo> 25 <user>coreutils</user> 26 </stageinfo> 27 <unpack> 28 <digest>&coreutils-md5;</digest> 29 <archive>&packages_dir;/&coreutils-package;</archive> 30 <destination>&package_home;/coreutils</destination> 31 </unpack> 32 </stage> 33 <stage name="Patching"> 34 <stageinfo> 35 <user>coreutils</user> 36 <base>&package_home;/coreutils/&coreutils-directory;</base> 37 </stageinfo> 38 <patch> 39 <param>-N</param> 40 <param>-p1</param> 41 <param>-i &packages_dir;/&coreutils-uname-patch;</param> 42 </patch> 43 <patch> 44 <param>-N</param> 45 <param>-p1</param> 46 <param>-i &packages_dir;/&coreutils-dupes-patch;</param> 47 </patch> 48 </stage> 49 <stage name="Configure"> 50 <stageinfo> 51 <user>coreutils</user> 52 <base>&package_home;/coreutils/&coreutils-directory;</base> 53 </stageinfo> 54 <configure> 55 <prefix>DEFAULT_POSIX2_VERSION=199209</prefix> 56 <param>--prefix=/usr</param> 57 </configure> 58 </stage> 59 <stage name="Compile"> 60 <stageinfo> 61 <user>coreutils</user> 62 <base>&package_home;/coreutils/&coreutils-directory;</base> 63 </stageinfo> 64 <make> 65 <param>&jlevel;</param> 66 </make> 67 </stage> 68 <stage name="Test"> 69 <stageinfo> 70 <base>&package_home;/coreutils/&coreutils-directory;</base> 71 </stageinfo> 72 <textdump mode="append"> 73 <file>/etc/group</file> 74 <content> 75 =dummy1:x:1000 76 =dummy2:x:1001:dummy 77 </content> 78 </textdump> 79 <!--textdump mode="append"> 80 <file>/etc/passwd</file> 81 <content> 82 =dummy:x:1000:1000:::/bin/bash 83 </content> 84 </textdump--> 85 <make> 86 <param>NON_ROOT_USERNAME=coreutils</param> 87 <param>check-root</param> 88 </make> 89 <execute command="src/su"> 90 <param>coreutils</param> 91 <param>-c "make RUN_EXPENSIVE_TESTS=yes check"</param> 92 </execute> 93 <execute command="sed"> 94 <param>-i.bak</param> 95 <param>'/dummy/d'</param> 96 <param>/etc/passwd</param> 97 <param>/etc/group</param> 98 </execute> 99 </stage> 100 <stage name="Prepare"> 101 <remove>/bin/cat</remove> 102 <remove>/bin/pwd</remove> 103 <remove>/bin/stty</remove> 104 </stage> 105 <stage name="Install"> 106 <stageinfo> 107 <user>coreutils</user> 108 <base>&package_home;/coreutils/&coreutils-directory;</base> 109 </stageinfo> 110 <make> 111 <param>install</param> 112 </make> 113 <move base="/usr/bin"> 114 <source>[</source> 115 <source>basename</source> 116 <source>cat</source> 117 <source>chgrp</source> 118 <source>chmod</source> 119 <source>chown</source> 120 <source>cp</source> 121 <source>dd</source> 122 <source>df</source> 123 <source>date</source> 124 <source>echo</source> 125 <source>false</source> 126 <source>head</source> 127 <source>hostname</source> 128 <source>install</source> 129 <source>ln</source> 130 <source>ls</source> 131 <source>mkdir</source> 132 <source>mknod</source> 133 <source>mv</source> 134 <source>pwd</source> 135 <source>rm</source> 136 <source>rmdir</source> 137 <source>sync</source> 138 <source>sleep</source> 139 <source>stty</source> 140 <source>test</source> 141 <source>touch</source> 142 <source>true</source> 143 <source>uname</source> 144 <destination>/bin</destination> 145 </move> 146 <move> 147 <source>/usr/bin/chroot</source> 148 <destination>/usr/sbin</destination> 149 </move> 150 <link> 151 <option>force</option> 152 <target>../../bin/install</target> 153 <name>/usr/bin</name> 154 </link> 155 <remove>/usr/share/man/man1/su.1</remove> 156 </stage> 157 <stage name="Cleanup"> 158 <remove>&package_home;/coreutils/&coreutils-directory;</remove> 159 </stage> 160 </package> 161 </alfs>
Up and running, A happy system.
After My last attemp succeeded, I moved onto BLFS(didn't use profiles because this is my first BLFS attempt and I wanted to do it by hand.) My PC is happy and so am I. Initially I started with console only PC(mplayer and all). Then I needed firefox badly and installed X. No sweat here. I've put firefox and gaim in xinitrc and everything just worked. After a bit of probing from a friend, I finally gave in and installed XFCE. Now even my friends can use it.
Here is my package list(/etc/passwd)
dch:x:9998:10109::/home/dch:/bin/bash
mpdaemon:x:9999:10074::/home/mpdaemon:/bin/bash
linux-libc:x:10001:10001:2.6.11.2:/usr/src/linux-libc:/bin/bash
man-pages:x:10002:10002:2.01:/usr/src/man-pages:/bin/bash
glibc:x:10003:10003:2.3.4:/usr/src/glibc:/bin/bash
binutils:x:10004:10004:2.15.94.0.2.2:/usr/src/binutils:/bin/bash
gcc:x:10005:10005:3.4.3:/usr/src/gcc:/bin/bash
coreutils:x:10006:10006:5.2.1:/usr/src/coreutils:/bin/bash
zlib:x:10007:10007:1.2.2:/usr/src/zlib:/bin/bash
mktemp:x:10008:10008:1.5:/usr/src/mktemp:/bin/bash
iana-etc:x:10009:10009:1.04:/usr/src/iana-etc:/bin/bash
findutils:x:10010:10010:4.2.23:/usr/src/findutils:/bin/bash
gawk:x:10011:10011:3.1.4:/usr/src/gawk:/bin/bash
ncurses:x:10012:10012:5.4:/usr/src/ncurses:/bin/bash
readline:x:10013:10013:5.0:/usr/src/readline:/bin/bash
vim:x:10014:10014:6.3:/usr/src/vim:/bin/bash
m4:x:10015:10015:1.4.3:/usr/src/m4:/bin/bash
bison:x:10016:10016:2.0:/usr/src/bison:/bin/bash
less:x:10017:10017:382:/usr/src/less:/bin/bash
groff:x:10018:10018:1.19.1:/usr/src/groff:/bin/bash
sed:x:10019:10019:4.1.4:/usr/src/sed:/bin/bash
flex:x:10020:10020:2.5.31:/usr/src/flex:/bin/bash
gettext:x:10021:10021:0.14.3:/usr/src/gettext:/bin/bash
inetutils:x:10022:10022:1.4.2:/usr/src/inetutils:/bin/bash
iproute2:x:10023:10023:2.6.11:/usr/src/iproute2:/bin/bash
perl:x:10024:10024:5.8.6:/usr/src/perl:/bin/bash
texinfo:x:10025:10025:4.8:/usr/src/texinfo:/bin/bash
autoconf:x:10026:10026:2.59:/usr/src/autoconf:/bin/bash
automake:x:10027:10027:1.9.5:/usr/src/automake:/bin/bash
bash:x:10028:10028:3.0:/usr/src/bash:/bin/bash
file:x:10029:10029:4.13:/usr/src/file:/bin/bash
libtool:x:10030:10030:1.5.14:/usr/src/libtool:/bin/bash
bzip2:x:10031:10031:1.0.3:/usr/src/bzip2:/bin/bash
diffutils:x:10032:10032:2.8.1:/usr/src/diffutils:/bin/bash
kbd:x:10033:10033:1.12:/usr/src/kbd:/bin/bash
e2fsprogs:x:10034:10034:1.37:/usr/src/e2fsprogs:/bin/bash
grep:x:10035:10035:2.5.1a:/usr/src/grep:/bin/bash
grub:x:10036:10036:0.96:/usr/src/grub:/bin/bash
gzip:x:10037:10037:1.3.5:/usr/src/gzip:/bin/bash
hotplug:x:10038:10038:2004_09_23:/usr/src/hotplug:/bin/bash
man:x:10039:10039:1.5p:/usr/src/man:/bin/bash
make:x:10040:10040:3.80:/usr/src/make:/bin/bash
module-init-tools:x:10041:10041:3.1:/usr/src/module-init-tools:/bin/bash
patch:x:10042:10042:2.5.4:/usr/src/patch:/bin/bash
procps:x:10043:10043:3.2.5:/usr/src/procps:/bin/bash
psmisc:x:10044:10044:21.6:/usr/src/psmisc:/bin/bash
shadow:x:10045:10045:4.0.9:/usr/src/shadow:/bin/bash
sysklogd:x:10046:10046:1.4.1:/usr/src/sysklogd:/bin/bash
sysvinit:x:10047:10047:2.86:/usr/src/sysvinit:/bin/bash
tar:x:10048:10048:1.15.1:/usr/src/tar:/bin/bash
udev:x:10049:10049:056:/usr/src/udev:/bin/bash
util-linux:x:10050:10050:2.12q:/usr/src/util-linux:/bin/bash
linux:x:10051:10051:2.6.14.2:/usr/src/linux:/bin/bash
libxml2:x:10052:10052:2.6.22:/usr/src/libxml2:/bin/bash
nalfs:x:10053:10053:1.2.5-1:/usr/src/nALFS:/bin/bash
blfs-bootscripts:x:10054:10054:6.1:/usr/src/blfs-bootscripts:/bin/bash
autofs:x:10055:10055:4.1.4:/usr/src/autofs:/bin/bash
openssl:x:10056:10056:0.9.7g:/usr/src/openssl:/bin/bash
python:x:10057:10057:2.4.1:/usr/src/python:/bin/bash
gpm:x:10058:10058:1.20.1:/usr/src/gpm:/bin/bash
gc:x:10059:10060:6.5:/usr/src/gc:/bin/bash
w3m:x:10060:10061:0.5.1:/usr/src/w3m:/bin/bash
lynx:x:10061:10062:2.8.5:/usr/src/lynx:/bin/bash
wget:x:10062:10063:1.9.1:/usr/src/wget:/bin/bash
tree:x:10064:10065:1.5.0:/usr/src/tree:/bin/bash
eject:x:10065:10066:2.1.0:/usr/src/eject:/bin/bash
alsa-lib:x:10066:10067:1.0.9:/usr/src/alsa-lib:/bin/bash
alsa-plugins:x:10067:10068:1.0.9:/usr/src/alsa-plugins:/bin/bash
alsa-utils:x:10068:10069:1.0.9a:/usr/src/alsa-utils:/bin/bash
pkg-config:x:10069:10070:0.19:/usr/src/pkg-config:/bin/bash
alsa-tools:x:10070:10071:1.0.9:/usr/src/alsa-tools:/bin/bash
alsa-oss:x:10071:10072:1.0.9:/usr/src/alsa-oss:/bin/bash
mplayer:x:10072:10073:1.0pre7:/usr/src/mplayer:/bin/bash
mpd:x:10074:10074:0.11.5:/usr/src/mpd:/bin/bash
mpc:x:10075:10075:0.11.2:/usr/src/mpc:/bin/bash
ncmpc:x:10076:10076:0.11.1:/usr/src/ncmpc:/bin/bash
gdb:x:10077:10077:6.3:/usr/src/gdb:/bin/bash
libao:x:10078:10078:0.8.6:/usr/src/libao:/bin/bash
glib:x:10079:10079:2.6.4,devel-1.2.10:/usr/src/glib:/bin/bash
libpng:x:10080:10080:1.2.8:/usr/src/libpng:/bin/bash
freetype:x:10081:10081:2.1.10:/usr/src/freetype:/bin/bash
expat:x:10082:10082:1.95.8:/usr/src/expat:/bin/bash
fontconfig:x:10083:10083:2.3.2:/usr/src/fontconfig:/bin/bash
xfree86:x:10084:10084:4.5.0:/usr/src/xfree86:/bin/bash
mpcstick:x:10085:10085:0.10.2:/usr/src/mpcstick:/bin/bash
pango:x:10086:10086:1.8.1:/usr/src/pango:/bin/bash
atk:x:10087:10087:1.9.1:/usr/src/atk:/bin/bash
libjpeg:x:10088:10088:6b:/usr/src/libjpeg:/bin/bash
libidl:x:10089:10089:0.8.5:/usr/src/libidl:/bin/bash
zip:x:10090:10090:2.31:/usr/src/zip:/bin/bash
firefox:x:10091:10091:1.0.7:/usr/src/firefox:/bin/bash
gtk-plus:x:10092:10092:2.6.7,devel-1.2.10:/usr/src/gtk-plus:/bin/bash
jre:x:10093:10093:1_5_0_05:/usr/src/jre:/bin/bash
curl:x:10094:10094:7.14.0:/usr/src/curl:/bin/bash
gaim:x:10095:10095:1.5.0:/usr/src/gaim:/bin/bash
aspell:x:10096:10096:0.60.3:/usr/src/aspell:/bin/bash
xfce:x:10097:10097:4.2.2:/usr/src/xfce:/bin/bash
startup-notify:x:10098:10098:0.8:/usr/src/startup-notify:/bin/bash
qt:x:10099:10099:3.3.4:/usr/src/qt:/bin/bash
lcms:x:10100:10100:1.14:/usr/src/lcms:/bin/bash
libmng:x:10101:10101:1.0.9:/usr/src/libmng:/bin/bash
dc:x:10102:10102:0.3.7:/usr/src/dc:/bin/bash
screen:x:10103:10103:4.0.2:/usr/src/screen:/bin/bash
ayttm:x:10104:10104:0.4.6-17:/usr/src/ayttm:/bin/bash
subversion:x:10106:10106:1.1.4:/usr/src/subversion:/bin/bash
tcp_wrappers:x:10107:10107:7.6:/usr/src/tcp_wrappers:/bin/bash
libtiff:x:10108:10108:3.7.3:/usr/src/libtiff:/bin/bash
opendchub:x:10109:10109:0.7.14:/usr/src/opendchub:/bin/bash
cvoicecontrol:x:10110:10110:0.9alpha:/usr/src/cvoicecontrol:/bin/bash
lesstif:x:10111:10111:0.94.4:/usr/src/lesstif:/bin/bash
xpdf:x:10112:10112:3.01:/usr/src/xpdf:/bin/bash
bluez-libs:x:10113:10113:2.22:/usr/src/bluez-libs:/bin/bash
bluez-utils:x:10114:10114:2.22:/usr/src/bluez-utils:/bin/bash
ctorrent:x:10115:10115:1.3.2:/usr/src/ctorrent:/bin/bash
lineakd:x:10116:10116:0.8.3:/usr/src/lineakd:/bin/bash
There are a few more packages and things I wanna talk about, but later.
Monday, November 21, 2005
Second attempt at nALFS + package users
Last night I have run another build and found a few problems.
- gcc:
- change the ownership of
/usr/lib/libgcc_s.so{,.2}
to gcc - Do not remove the files. They may be required, as is the case with gcc.
- Authorize the action by changing the ownership. The installation will make changes as it sees fit.
- change the ownership of
- gettext:
- Confirmed: Fails on parallel build
- iproute2:
- works on second run even without
jtag
being removed - Possibly, failing due to not finding a fail that is being created in another thread
- need to check again without
jtags
in the first run
- works on second run even without
- perl:
- Apparently succeeds
- But depends on
/tools
and fails the subsequent packages, first of which is autoconf(look below)
- autoconf:
- Searches for perl in
/tools
and fails - Deleting the
/usr/bin/perl
symlink is no good. - How ever changing the ownership before compiling perl worked
- Searches for perl in
- e2fsprogs:
- same as iproute2
- hotplug:
- Insists on using
/usr/bin/install
, thus side stepping the wrappers. - Use
INSTALL=install
param.
- Insists on using
- man:
- same as iproute2 and e2fsprogs
- udev
- Similar to hotplug
- Use
INSTALL=install
param.
Sunday, November 20, 2005
First attempt at nALFS + package users
I tried to modify the LFS-6.1-1 ALFS profile for implimenting the changes. I used 6.1 live cd and there are a few digest mismatches. Apparently there was a server hickup and things changed. I guess it's okay to ignore them. The rest of the errors and temporary work arounds are here.
- gcc:
/usr/lib/libgcc_s.so need to be removed.- change the ownership of /usr/lib/libgcc_s.so to gcc
- See next post for more details.
- coreutils:
- test: need to be run as root.
- uses dummy user so not much prob
- Still I would like to see if it can be done better
- gettext:
- apparently fails on parallel build as I discovered on googling for error
- I assumed the parallel build issue was taken care of in the profile.
- need to check again
- iproute2:
- googling is not good enough. So I guessed based on prev prob.
- works if -j tag is removed
- need to check again
- autoconf:
- Searches for perl in /tools and fails
- Googling shows that the link /usr/bin/perl that points to perl in /tools need to be removed before making perl or need to be relinked to the perl in /usr but that wouldn't help either because it is already pointing to the perl in /usr
- temporarily I worked around the problem by removing /tools/lib/perl5 and making it a symlink to /usr/lib/perl5
- e2fsprogs:
- same as iproute2
- removing -j tag helped
- hotplug:
- completely clue less
- ended up editing Makefile manually
- no clue on weather it works or breaks anything either
- man:
- guessing parallel again
- sysvinit:
- error:can not remove /bin/pid
- it belongs to psmisc
- udev
- error:trying to change permissions of /etc/hotplug.d/default
- Makefile: install -d $(DESTDIR)$(hotplugdir)
patched nALFS to use /etc/passwd from $LFS
The earlier patch for uid:gid
failed because You can't use it to set additional groups which is required because package users use sticky bit of install dirs owned by install
group.
So once more I found myself looking at nALFS code. This time I was looking at change group function in stage.c and discovered that it had been modified earlier for use in chroot
environment. I knew it when I saw because I was hoping to use the fget....
functions too. Hmm, looks like the team has forgot to change the change_to_user
function. I did it and here is the patch. It's working just fine.
nALFS-1.2.5-change_to_user.patch
static INLINE int change_to_user(const char *user)
{
struct passwd *pw;
+ FILE *fp;
-
- setpwent();
-
- /* getpwnam() is failing in chroot() */
- while ((pw = getpwent())) {
- if (strcmp(pw->pw_name, user) == 0) {
- break;
+ if ((fp = fopen("/etc/passwd", "r"))) { //setpwent();
+ /* getpwnam() is failing in chroot() */
+ while ((pw = fgetpwent(fp))) {
+ if (strcmp(pw->pw_name, user) == 0) {
+ break;
+ }
}
- }
- endpwent();
+ fclose(fp); //endpwent();
+ } else {
+ Nprint_h_warn("Unable to open /etc/passwd: %s",
+ strerror(errno));
+ }
if (pw == NULL) {
Nprint_h_err("User %s doesn't exist.", user);
return -1;
Thursday, November 17, 2005
patched nALFS to use uid:gid style user info
As I got no replies for my mail to alfs mailing list, I have finally decided to get my hands dirtier (They are already dirty). I have made a patch for nALFS that seems to do the job of using <user>uid:gid</user>. the usual at your own risk blah blah... disclaimer.
The format <user>uid:gid</user> has to be strictly followed and it won't check for the format, neither does it have any defaults in case you omit anything. I don't know if I have broken the original functionality. I had to bypass the user not found check and I didn't care to adopt it, instead I removed it. So I suggest either you look into it and modify it further or wait till my exams are over and I'll be more free to work them out.
There is one more catch, there are two files with same function which are exact replicas. But I changed only one that was being used when I traced it in gdb. Be warned, its only a couple of days since I started using gdb. Thanks to Kousik and Sunny.
nALFS-1.2.5-user-UID.patch
diff -Naur nALFS-1.2.5/src/handlers/stage.c nALFS-1.2.5-#/src/handlers/stage.c
--- nALFS-1.2.5/src/handlers/stage.c 2004-07-04 11:21:11.000000000 +0530
+++ nALFS-1.2.5-#/src/handlers/stage.c 2005-11-17 06:18:00.000000000 +0530
@@ -103,8 +103,9 @@
static INLINE int change_to_user(const char *user)
{
struct passwd *pw;
-
-
+ uid_t uid;
+ gid_t gid;
+
setpwent();
/* getpwnam() is failing in chroot() */
@@ -118,20 +119,28 @@
if (pw == NULL) {
Nprint_h_err("User %s doesn't exist.", user);
- return -1;
+ // return -1;
+ //check for UID
+ uid = atoi(strtok(user,":"));
+ gid = atoi(strtok(NULL,"\0"));
+ }
+ else
+ {
+ uid = pw->pw_uid;
+ gid = pw->pw_gid;
}
- if (set_supplementary_groups(user, pw->pw_gid)) {
+ if (set_supplementary_groups(user, gid)) {
return -1;
}
- if (setgid(pw->pw_gid)) {
+ if (setgid(gid)) {
Nprint_h_err("Unable to set group ID: %s",
strerror(errno));
return -1;
}
- if (setuid(pw->pw_uid)) {
+ if (setuid(uid)) {
Nprint_h_err("Unable to set user ID: %s",
strerror(errno));
return -1;
Wednesday, November 09, 2005
package users and nALFS: define package id in users tag
The other option Iwas left with is to use use numeric uid in <users></users>.
But can it take the syntax <users>uid:gid</users>
because without gid, it is going to be a mess unless taken care of. or is it going to default to the uid value for gid too? I have to experiment and find out. unless some one can help me here.
Another thing I can do is (in case it won't take the gid) set the gid while cleaning up with something like find / -uid $UID -exec chgrp $GID {}
and take extra care to set gid before making any suid
s.
Tuesday, November 08, 2005
Bug 1058 - changing user breaks when chrooted in script
I tried to make matching entries in /etc/passwd and /etc/groups on the host and still getting the user not found error.
Here are the contents I appended to the host contents.
/etc/passwd
linux-libc-headers:x:10000:10000:2.6.11.2:/usr/src/libc-headers:/bin/bash
man-pages:x:10001:10001:2.01:/usr/src/man-pages:/bin/bash
glibc:x:10002:10002:2.3.4:/usr/src/glibc:/bin/bash
binutils:x:10003:10003:2.15.94.0.2.2:/usr/src/binutils:/bin/bash
gcc:x:10004:10004:3.4.3:/usr/src/gcc:/bin/bash
coreutils:x:10005:10005:5.2.1:/usr/src/coreutils:/bin/bash
zlib:x:10006:10006:1.2.2:/usr/src/zlib:/bin/bash
mktemp:x:10007:10007:1.5:/usr/src/mktemp:/bin/bash
iana-etc:x:10008:10008:1.04:/usr/src/iana-etc:/bin/bash
findutils:x:10009:10009:4.2.23:/usr/src/findutils:/bin/bash
gawk:x:10010:10010:3.1.4:/usr/src/gawk:/bin/bash
ncurses:x:10011:10011:5.4:/usr/src/ncurses:/bin/bash
readline:x:10012:10012:5.0:/usr/src/readline:/bin/bash
vim:x:10013:10013:6.3:/usr/src/vim:/bin/bash
m4:x:10014:10014:1.4.3:/usr/src/m4:/bin/bash
bison:x:10015:10015:2.0:/usr/src/bison:/bin/bash
less:x:10016:10016:382:/usr/src/less:/bin/bash
groff:x:10017:10017:1.19.1:/usr/src/groff:/bin/bash
sed:x:10018:10018:4.1.4:/usr/src/sed:/bin/bash
flex:x:10019:10019:2.5.31:/usr/src/flex:/bin/bash
gettext:x:10020:10020:0.14.3:/usr/src/gettext:/bin/bash
inetutils:x:10021:10021:1.4.2:/usr/src/inetutils:/bin/bash
iproute2:x:10022:10022:2.6.11:/usr/src/iproute2:/bin/bash
perl:x:10023:10023:5.8.6:/usr/src/perl:/bin/bash
texinfo:x:10024:10024:4.8:/usr/src/texinfo:/bin/bash
autoconf:x:10025:10025:2.59:/usr/src/autoconf:/bin/bash
automake:x:10026:10026:1.9.5:/usr/src/automake:/bin/bash
bash:x:10027:10027:3.0:/usr/src/bash:/bin/bash
file:x:10028:10028:4.13:/usr/src/file:/bin/bash
libtool:x:10029:10029:1.5.14:/usr/src/libtool:/bin/bash
bzip2:x:10030:10030:1.0.3:/usr/src/bzip2:/bin/bash
diffutils:x:10031:10031:2.8.1:/usr/src/diffutils:/bin/bash
kbd:x:10032:10032:1.12:/usr/src/kbd:/bin/bash
e2fsprogs:x:10033:10033:1.37:/usr/src/e2fsprogs:/bin/bash
grep:x:10034:10034:2.5.1a:/usr/src/grep:/bin/bash
grub:x:10035:10035:0.96:/usr/src/grub:/bin/bash
gzip:x:10036:10036:1.3.5:/usr/src/gzip:/bin/bash
hotplug:x:10037:10037:2004_09_23:/usr/src/hotplug:/bin/bash
man:x:10038:10038:1.5p:/usr/src/man:/bin/bash
make:x:10039:10039:3.80:/usr/src/make:/bin/bash
module-init-tools:x:10040:10040:3.1:/usr/src/module-init-tools:/bin/bash
patch:x:10041:10041:2.5.4:/usr/src/patch:/bin/bash
procps:x:10042:10042:3.2.5:/usr/src/procps:/bin/bash
psmisc:x:10043:10043:21.6:/usr/src/psmisc:/bin/bash
shadow:x:10044:10044:4.0.9:/usr/src/shadow:/bin/bash
sysklogd:x:10045:10045:1.4.1:/usr/src/sysklogd:/bin/bash
sysvinit:x:10046:10046:2.86:/usr/src/sysvinit:/bin/bash
tar:x:10047:10047:1.15.1:/usr/src/tar:/bin/bash
udev:x:10048:10048:056:/usr/src/udev:/bin/bash
util-linux:x:10049:10049:2.12q:/usr/src/util-linux:/bin/bash
/etc/group
linux-libc-headers:x:10000:
man-pages:x:10001:
glibc:x:10002:
binutils:x:10003:
gcc:x:10004:
coreutils:x:10005:
zlib:x:10006:
mktemp:x:10007:
iana-etc:x:10008:
findutils:x:10009:
gawk:x:10010:
ncurses:x:10011:
readline:x:10012:
vim:x:10013:
m4:x:10014:
bison:x:10015:
less:x:10016:
groff:x:10017:
sed:x:10018:
flex:x:10019:
gettext:x:10020:
inetutils:x:10021:
iproute2:x:10022:
perl:x:10023:
texinfo:x:10024:
autoconf:x:10025:
automake:x:10026:
bash:x:10027:
file:x:10028:
libtool:x:10029:
bzip2:x:10030:
diffutils:x:10031:
kbd:x:10032:
e2fsprogs:x:10033:
grep:x:10034:
grub:x:10035:
gzip:x:10036:
hotplug:x:10037:
man:x:10038:
make:x:10039:
module-init-tools:x:10040:
patch:x:10041:
procps:x:10042:
psmisc:x:10043:
shadow:x:10044:
sysklogd:x:10045:
sysvinit:x:10046:
tar:x:10047:
udev:x:10048:
util-linux:x:10049:
Saturday, October 29, 2005
Use fake package users
So I need to use user IDs, huh? Wonder how I can catch the output of the script and place it in xml. If that can't be done, I can always use a package-userid
xml entity in package.ent
.
The first seems to beimpossible as of now and the second is a head ache. I think I will modify the add_user script so that it can be run from host root and make changes to $LFS/etc/passwd
and /etc/passwd
. Well, The following schema should work.
- The users on host should all belong to a temp group so that they can be removed easily after the build is done. But still I don't like messing my host system.
- The id finding algo should check both the files to find the usable ID. This can be ensured by making the range availiable in host passwd filed, but some how I don't like to depend on that !