28: $(INSTALL) -d -m 0755 $(TARGET_DIR)/etc/foo.d
29: endef
30:
-31: define LIBFOO_DEVICES
-32: /dev/foo c 666 0 0 42 0 - - -
+31: define LIBFOO_USERS
+32: foo -1 libfoo -1 * - - - LibFoo daemon
33: endef
34:
-35: define LIBFOO_PERMISSIONS
-36: /bin/foo f 4755 0 0 - - - - -
+35: define LIBFOO_DEVICES
+36: /dev/foo c 666 0 0 42 0 - - -
37: endef
38:
-39: define LIBFOO_USERS
-40: foo -1 libfoo -1 * - - - LibFoo daemon
+39: define LIBFOO_PERMISSIONS
+40: /bin/foo f 4755 foo libfoo - - - - -
41: endef
42:
43: $(eval $(generic-package))
contains the directory where the source code of the package has been
extracted.
-On line 31..33, we define a device-node file used by this package
+On lines 31..43, we define a user that is used by this package (e.g.
+to run a daemon as non-root) (+LIBFOO_USERS+).
+
+On line 35..37, we define a device-node file used by this package
(+LIBFOO_DEVICES+).
-On line 35..37, we define the permissions to set to specific files
+On line 39..41, we define the permissions to set to specific files
installed by this package (+LIBFOO_PERMISSIONS+).
-On lines 39..41, we define a user that is used by this package (e.g.
-to run a daemon as non-root) (+LIBFOO_USERS+).
-
Finally, on line 43, we call the +generic-package+ function, which
generates, according to the variables defined previously, all the
Makefile code necessary to make your package working.
* c: a character device file
* b: a block device file
* p: a named pipe
-- +mode+, +uid+ and +gid+ are the usual permissions settings (only
- numerical values are allowed)
+- +mode+ are the usual permissions settings (only numerical values
+ are allowed)
+- +uid+ and +gid+ are the UID and GID to set on this file; can be
+ either numerical values or actual names
- +major+ and +minor+ are here for device files, set to +-+ for other
files
- +start+, +inc+ and +count+ are for when you want to create a batch
incrementing its counter by +inc+ until it reaches +count+
Let's say you want to change the permissions of a given file; using
-this syntax, you will need to put:
+this syntax, you will need to write:
----
-/usr/bin/foobar f 644 0 0 - - - - -
+/usr/bin/foo f 755 0 0 - - - - -
+/usr/bin/bar f 755 root root - - - - -
+/data/buz f buz-user buz-group - - - - -
----
Alternatively, if you want to change owner/permission of a directory
-recursively, you can put (to set UID to 123, GID to 456 and access
+recursively, you can write (to set UID to foo, GID to bar and access
rights to rwxr-x--- for the directory /usr/share/myapp and all files
and directories below it):
----
-/usr/share/myapp r 750 123 456 - - - - -
+/usr/share/myapp r 750 foo bar - - - - -
----
On the other hand, if you want to create the device file +/dev/hda+
+/dev/hda+:
----
-/dev/hda b 640 0 0 3 0 0 0 -
+/dev/hda b 640 root root 3 0 0 0 -
----
and then for device files corresponding to the partitions of
+/dev/hda+, +/dev/hdaX+, +X+ ranging from 1 to 15:
----
-/dev/hda b 640 0 0 3 1 1 1 15
+/dev/hda b 640 root root 3 1 1 1 15
----