diff --git a/config.ini b/config.ini new file mode 100644 index 0000000..8b2941a --- /dev/null +++ b/config.ini @@ -0,0 +1,18 @@ +[DEFAULT] + +outputdir = +# workdir = os.getcwd() +# srcdir = os.path.join(os.path.dirname(sys.argv[0], '..') +# rpmostree_cache_dir = %(workdir)s/%(release)s/cache +ostree_repo = %(outputdir)s/repo +os_name = fedora-iot +os_pretty_name = Fedora IoT +tree_name = docker-host +tree_file = %(os_name)s-%(tree_name)s.json +arch = x86_64 +release = f28 +ref = %(os_name)s/%(release)s/%(arch)s/%(tree_name)s +yum_baseurl = http://dl.fedoraproject.org/pub/fedora/linux//development/rawhide/%(arch)s/os/ +# lorax_additional_repos = http://127.0.0.1/fedora-iot/local-overrides +lorax_include_packages = fedora-productimg-iot +docker_os_name = fedora diff --git a/fedora-iot-base.json b/fedora-iot-base.json new file mode 100644 index 0000000..6512c8c --- /dev/null +++ b/fedora-iot-base.json @@ -0,0 +1,125 @@ +{ + "ref": "fedora/28/${basearch}/iot", + "ex-jigdo-spec": "fedora-iot.spec", + + "repos": [], + + "selinux": true, + + "documentation": false, + + "automatic_version_prefix": "28", + "mutate-os-release": "28", + + "initramfs-args": ["--no-hostonly"], + "boot_location": "new", + + "install-langs-comment": "Keep this in sync with treecompose-post.sh", + "install-langs": [ + "pt_BR", + "fr", + "fr_FR", + "de", + "de_DE", + "it", + "it_IT", + "ru", + "ru_RU", + "es", + "es_ES", + "en_US", + "zh_CN", + "ja", + "ja_JP", + "ko", + "ko_KR", + "zh_TW", + "as", + "as_IN", + "bn", + "bn_IN", + "gu", + "gu_IN", + "hi", + "hi_IN", + "kn", + "kn_IN", + "ml", + "ml_IN", + "mr", + "mr_IN", + "or", + "or_IN", + "pa", + "pa_IN", + "ta", + "ta_IN", + "te", + "te_IN" + ], + + "postprocess-script": "treecompose-post.sh", + + "etc-group-members": ["wheel", "docker"], + + "ignore-removed-users": ["root"], + "ignore-removed-groups": ["root"], + "check-passwd": { "type": "file", "filename": "passwd" }, + "check-groups": { "type": "file", "filename": "group" }, + + "packages": ["atomic", + "glibc", "nss-altfiles", "shadow-utils", + "sssd-client", "libsss_sudo", + "fedora-release-iot", + "dracut-config-generic", "kernel", + "dracut-network", + "rpm-ostree", "lvm2", + "chrony", + "cryptsetup", + "authselect", + "e2fsprogs", "xfsprogs", + "gnupg2", + "basesystem", + "python3", + "bash", + "xz", "gzip", "bzip2", + "coreutils", + "which", + "curl", + "iptables-services", "iptables", "firewalld", + "NetworkManager", "NetworkManager-bluetooth", "NetworkManager-wifi", + "dnsmasq", + "hostname", "initscripts", "iproute", "iputils", + "openssh-clients", "openssh-server", "passwd", + "policycoreutils", "procps-ng", "rootfiles", "rpm", + "selinux-policy-targeted", "setup", "shadow-utils", + "sudo", "systemd", "util-linux", "vim-minimal", + "less", + "tar", + "initial-setup", + "cloud-utils-growpart", + "rsync", + "bash-completion", + "tmux", "screen", + "policycoreutils-python", + "policycoreutils-python-utils", + "setools-console", + "audit", + "podman", + "attr"], + + "packages-aarch64": ["grub2-efi", "ostree-grub2", + "efibootmgr", "shim", "atomic-devmode", + "uboot-tools", "uboot-images-armv8", "bcm283x-firmware"], + + "packages-armhfp": ["extlinux-bootloader", + "uboot-tools", "uboot-images-armv7", "bcm283x-firmware"], + + "packages-x86_64": ["grub2", "grub2-efi-x64", "ostree-grub2", + "efibootmgr", "shim", "atomic-devmode", + "microcode_ctl"], + + "default_target": "multi-user.target", + + "units": ["docker.service"] +} diff --git a/fedora-iot-rawhide.tdl b/fedora-iot-rawhide.tdl new file mode 100644 index 0000000..8ad38cb --- /dev/null +++ b/fedora-iot-rawhide.tdl @@ -0,0 +1,13 @@ + + diff --git a/fedora-iot-updates-stable.json b/fedora-iot-updates-stable.json new file mode 100644 index 0000000..9fdc273 --- /dev/null +++ b/fedora-iot-updates-stable.json @@ -0,0 +1,5 @@ + + "ref": "fedora/28/${basearch}/updates/iot", + "ex-jigdo-spec": "fedora-iot.spec", + "include": "fedora-iot-base.json" +} diff --git a/fedora-iot-updates-testing.json b/fedora-iot-updates-testing.json new file mode 100644 index 0000000..eaa9d91 --- /dev/null +++ b/fedora-iot-updates-testing.json @@ -0,0 +1,5 @@ +{ + "ref": "fedora/28/${basearch}/testing/iot", + "ex-jigdo-spec": "fedora-iot.spec", + "include": "fedora-iot-base.json" +} diff --git a/fedora-iot.json b/fedora-iot.json new file mode 100644 index 0000000..e0cd83c --- /dev/null +++ b/fedora-iot.json @@ -0,0 +1,6 @@ +{ + "ref": "fedora/28/${basearch}/iot", + "ex-jigdo-spec": "fedora-iot.spec", + "repos": ["fedora-28", "fedora-28-updates"], + "include": "fedora-iot-base.json" +} diff --git a/fedora-iot.spec b/fedora-iot.spec new file mode 100644 index 0000000..254f067 --- /dev/null +++ b/fedora-iot.spec @@ -0,0 +1,22 @@ +# Suppress most build root processing since we are just carrying binary data +%global __os_install_post /usr/lib/rpm/brp-compress %{nil} +Name: fedora-iot +Version: %{ostree_version} +Release: 1%{?dist} +Summary: Image (rpm-ostree jigdo) for Fedora Atomic Host +License: MIT +#@@@rpmostree_jigdo_meta@@@ + +%description +%{summary} + +%prep + +%build + +%install +mkdir -p %{buildroot}%{_prefix}/lib/ostree-jigdo/%{name} +for x in *; do mv ${x} %{buildroot}%{_prefix}/lib/ostree-jigdo/%{name}; done + +%files +%{_prefix}/lib/ostree-jigdo/%{name} diff --git a/group b/group new file mode 100644 index 0000000..0a2dab0 --- /dev/null +++ b/group @@ -0,0 +1,51 @@ +root:x:0: +bin:x:1: +daemon:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mem:x:8: +kmem:x:9: +wheel:x:10: +cdrom:x:11: +mail:x:12: +man:x:15: +dialout:x:18: +floppy:x:19: +games:x:20: +tape:x:30: +video:x:39: +ftp:x:50: +lock:x:54: +audio:x:63: +nobody:x:99: +users:x:100: +utmp:x:22: +utempter:x:35: +ssh_keys:x:999: +systemd-journal:x:190: +dbus:x:81: +polkitd:x:998: +etcd:x:997: +dip:x:40: +cgred:x:996: +tss:x:59: +avahi-autoipd:x:170: +rpc:x:32: +sssd:x:993: +dockerroot:x:986: +rpcuser:x:29: +nfsnobody:x:65534: +kube:x:994: +sshd:x:74: +chrony:x:992: +tcpdump:x:72: +ceph:x:167: +input:x:995: +systemd-timesync:x:991: +systemd-network:x:990: +systemd-resolve:x:989: +systemd-bus-proxy:x:988: +cockpit-ws:x:987: diff --git a/passwd b/passwd new file mode 100644 index 0000000..b05ebdb --- /dev/null +++ b/passwd @@ -0,0 +1,33 @@ +root:x:0:0:root:/root:/bin/bash +bin:x:1:1:bin:/bin:/sbin/nologin +daemon:x:2:2:daemon:/sbin:/sbin/nologin +adm:x:3:4:adm:/var/adm:/sbin/nologin +lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin +sync:x:5:0:sync:/sbin:/bin/sync +shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown +halt:x:7:0:halt:/sbin:/sbin/halt +mail:x:8:12:mail:/var/spool/mail:/sbin/nologin +operator:x:11:0:operator:/root:/sbin/nologin +games:x:12:100:games:/usr/games:/sbin/nologin +ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin +nobody:x:99:99:Nobody:/:/sbin/nologin +dbus:x:81:81:System message bus:/:/sbin/nologin +polkitd:x:999:998:User for polkitd:/:/sbin/nologin +etcd:x:998:997:etcd user:/var/lib/etcd:/sbin/nologin +tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin +avahi-autoipd:x:170:170:Avahi IPv4LL Stack:/var/lib/avahi-autoipd:/sbin/nologin +rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin +sssd:x:995:993:User for sssd:/:/sbin/nologin +dockerroot:x:997:986:Docker User:/var/lib/docker:/sbin/nologin +rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin +nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin +kube:x:996:994:Kubernetes user:/:/sbin/nologin +sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin +chrony:x:994:992::/var/lib/chrony:/sbin/nologin +tcpdump:x:72:72::/:/sbin/nologin +ceph:x:167:167:Ceph daemons:/var/lib/ceph:/sbin/nologin +systemd-timesync:x:993:991:systemd Time Synchronization:/:/sbin/nologin +systemd-network:x:991:990:systemd Network Management:/:/sbin/nologin +systemd-resolve:x:990:989:systemd Resolver:/:/sbin/nologin +systemd-bus-proxy:x:989:988:systemd Bus Proxy:/:/sbin/nologin +cockpit-ws:x:988:987:User for cockpit-ws:/:/sbin/nologin