* Replaced the dummy implementations of the <grp.h> and <pwd.h>
functions by ones reading /etc/{group,passwd}.
* Added quasi-standard getpwent_r() and getgrent_r().
* Added _SC_GETGR_R_SIZE_MAX and _SC_GETPW_R_SIZE_MAX sysconf()
constants.
* Moved initgroups() and getgrouplist() definition to grp.cpp. They use
the same backend as the <grp.h> functions.
* Set the permissions of files created by the build system to what they
should be on the image (executables: 755, others: 644). Otherwise only
root could do anything under Haiku.
* Added build system variables HAIKU_ROOT_USER_NAME and
HAIKU_ROOT_USER_REAL_NAME to customize name and real name of Haiku's
root user.
* Added build system rules AddUserToHaikuImage and AddGroupToHaikuImage
for adding additional users and groups (by default only root user and
group and a "users" group are created).
* Adjusted BIND port and coreutils config.h files according to what
features have become available.
* Fixed HAIKU_DOCUMENTATION_OBJECT_DIR definition. Untested, but it used
a wrong variable name before.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24750 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -676,6 +676,53 @@ rule InstallOptionalHaikuImagePackage package : url : dirTokens
|
||||
UnzipArchiveToHaikuImage $(dirTokens) : $(zipFile) ;
|
||||
}
|
||||
|
||||
rule AddEntryToHaikuImageUserGroupFile file : entry
|
||||
{
|
||||
local allEntries = [ on $(file) return $(HAIKU_IMAGE_USER_GROUP_ENTRIES) ] ;
|
||||
|
||||
if $(allEntries) {
|
||||
allEntries = $(allEntries)|$(entry) ;
|
||||
} else {
|
||||
allEntries = $(entry) ;
|
||||
|
||||
Always $(file) ;
|
||||
MakeLocate $(file) : $(HAIKU_COMMON_PLATFORM_OBJECT_DIR) ;
|
||||
BuildHaikuImageUserGroupFile $(file) ;
|
||||
AddFilesToHaikuImage beos etc : $(file) ;
|
||||
}
|
||||
|
||||
HAIKU_IMAGE_USER_GROUP_ENTRIES on $(file) = $(allEntries) ;
|
||||
}
|
||||
|
||||
actions BuildHaikuImageUserGroupFile
|
||||
{
|
||||
echo "$(HAIKU_IMAGE_USER_GROUP_ENTRIES)" | tr '|' '\n' > $(1)
|
||||
}
|
||||
|
||||
rule AddUserToHaikuImage user : uid : gid : home : shell : realName
|
||||
{
|
||||
if ! $(user) || ! $(uid) || ! $(gid) || ! $(home) {
|
||||
Exit "Invalid haiku user specification passed to AddUserToHaikuImage." ;
|
||||
}
|
||||
|
||||
local entry
|
||||
= $(user):x:$(uid):$(gid):$(realName:E=$(user)):$(home):$(shell:E="") ;
|
||||
|
||||
AddEntryToHaikuImageUserGroupFile <haiku-image>passwd : $(entry) ;
|
||||
}
|
||||
|
||||
rule AddGroupToHaikuImage group : gid : members
|
||||
{
|
||||
if ! $(group) || ! $(gid) {
|
||||
Exit "Invalid haiku group specification passed to"
|
||||
"AddGroupToHaikuImage." ;
|
||||
}
|
||||
|
||||
local entry = $(group):x:$(gid):$(members:J=,:E) ;
|
||||
|
||||
AddEntryToHaikuImageUserGroupFile <haiku-image>group : $(entry) ;
|
||||
}
|
||||
|
||||
|
||||
rule CreateHaikuImageMakeDirectoriesScript script
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user