diff options
author | Richard Ipsum <richard.ipsum@codethink.co.uk> | 2015-11-23 11:07:02 +0000 |
---|---|---|
committer | Richard Ipsum <richard.ipsum@codethink.co.uk> | 2015-11-23 11:07:02 +0000 |
commit | 2b6a1715866f26ea2b1174f92222d893b60996dd (patch) | |
tree | 94126dd94b73c57d403bc07506572d9e08b53431 | |
parent | e210c2b5a0371b7e01df0c026fb0e323116a20ed (diff) | |
parent | b77cc29d842be36cc87770a14db1e3133cb9afc6 (diff) | |
download | infrastructure-2b6a1715866f26ea2b1174f92222d893b60996dd.tar.gz |
Merge tag 'baserock-15.47'
Baserock release 15.47
315 files changed, 6942 insertions, 965 deletions
@@ -1 +1 @@ -version: 5 +version: 6 diff --git a/clusters/altera-socfpga-devkit-sd-image.morph b/clusters/altera-socfpga-devkit-sd-image.morph new file mode 100644 index 00000000..71d3da2d --- /dev/null +++ b/clusters/altera-socfpga-devkit-sd-image.morph @@ -0,0 +1,14 @@ +name: altera-socfpga-devkit-sd-image +kind: cluster +description: | + This cluster morph deploys a little endian Baserock system to + an SD image for the Altera Cyclone V development kit +systems: +- morph: systems/build-system-armv7l-altera-socfpga-devkit.morph + deploy: + self: + type: extensions/rawdisk + location: build-system-armv7l-altera-socfpga-devkit.img + DISK_SIZE: 7G + USE_PARTITIONING: yes + PARTITION_FILE: partitioning/socfpga-devkit diff --git a/clusters/ci.morph b/clusters/ci.morph index fc3e50a7..240e3d4f 100644 --- a/clusters/ci.morph +++ b/clusters/ci.morph @@ -23,7 +23,7 @@ systems: build-system-armv7lhf-jetson: type: extensions/rawdisk location: build-system-armv7lhf-jetson.img - DISK_SIZE: 2G + DISK_SIZE: 3G BOOT_DEVICE: /dev/mmcblk0p1 ROOT_DEVICE: /dev/mmcblk0p2 DTB_PATH: boot/tegra124-jetson-tk1.dtb @@ -31,11 +31,18 @@ systems: BOOTLOADER_INSTALL: none KERNEL_ARGS: cma=256M console=tty0 console=ttyS0,115200n8 no_console_suspend=1 nouveau.pstate=1 -- morph: systems/weston-system-x86_64-generic.morph +- morph: systems/gnome-system-x86_64.morph deploy: - weston-system-x86_64-generic: + gnome-system-x86_64: type: extensions/rawdisk - location: weston-system-x86_64-generic.img + location: gnome-system-x86_64.img + DISK_SIZE: 6G + KERNEL_ARGS: vga=788 +- morph: systems/xfce-system-x86_64.morph + deploy: + xfce-system-x86_64: + type: extensions/rawdisk + location: xfce-system-x86_64.img DISK_SIZE: 4G KERNEL_ARGS: vga=788 - morph: systems/weston-system-armv7lhf-jetson.morph @@ -58,6 +65,9 @@ systems: location: genivi-baseline-system-x86_64-generic.img DISK_SIZE: 4G KERNEL_ARGS: vga=788 + GENIVI_WESTON_BACKEND: fbdev + GENIVI_WESTON_CONFIG: baseline + GENIVI_WESTON_AUTOSTART: False - morph: systems/genivi-baseline-system-armv7lhf-jetson.morph deploy: genivi-baseline-system-armv7lhf-jetson: @@ -71,6 +81,9 @@ systems: BOOTLOADER_INSTALL: none KERNEL_ARGS: cma=256M console=tty0 console=ttyS0,115200n8 no_console_suspend=1 nouveau.pstate=1 + GENIVI_WESTON_BACKEND: drm + GENIVI_WESTON_CONFIG: baseline + GENIVI_WESTON_AUTOSTART: True - morph: systems/openstack-system-x86_64.morph deploy: openstack-system-x86_64: diff --git a/clusters/example-ceph-cluster-on-openstack.morph b/clusters/example-ceph-cluster-on-openstack.morph new file mode 100644 index 00000000..6ddabc90 --- /dev/null +++ b/clusters/example-ceph-cluster-on-openstack.morph @@ -0,0 +1,55 @@ +name: example-ceph-cluster-on-openstack +kind: cluster +description: | + This cluster morphology will deploy a 3 node ceph storage cluster to an + openstack server. + + It was written for use with the following guide on the baserock wiki: + http://wiki.baserock.org/guides/ceph-cluster-deploy/ + + See this guide for more information. + + See the ceph.configure file for more informatiion on the ceph + specific fields used in this cluster morphology. + +systems: +- morph: systems/ceph-service-x86_64-generic.morph + deploy: + ceph-mon-0-openstack: + # openstack info + <<: &common-config + type: openstack + location: http://<BASEROCK_OPENSTACK_SERVER_IP>:5000/v2.0/ + OPENSTACK_USER: demo + OPENSTACK_PASSWORD: demo + OPENSTACK_TENANT: demo + CLOUD_INIT: true + KERNEL_ARGS: console=ttyS0 console=tty0 + CEPH_CLUSTER: ceph + CEPH_CONF: ceph.conf + CEPH_CLIENT_ADMIN: ceph.client.admin.keyring + CEPH_MON_IP: <CEPH_MON_IP> + CEPH_CLUSTER_FSID: <CEPH_CLUSTER_FSID> + + OPENSTACK_IMAGENAME: mon-0-nd + DISK_SIZE: 10G + # Ceph info + HOSTNAME: mon-0 + CEPH_MON: + ceph-osd-0-openstack: + <<: *common-config + OPENSTACK_IMAGENAME: osd-0 + DISK_SIZE: 7G + # ceph info + HOSTNAME: osd-0 + CEPH_OSD: + CEPH_OSD_STORAGE_DEV: /dev/vdb + ceph-osd-1-openstack: + <<: *common-config + OPENSTACK_IMAGENAME: osd-1 + DISK_SIZE: 7G + # ceph info + HOSTNAME: osd-1 + + CEPH_OSD: + CEPH_OSD_STORAGE_DEV: /dev/vdb diff --git a/clusters/gdp-jetson-upgrade.morph b/clusters/gdp-jetson-upgrade.morph new file mode 100644 index 00000000..33eb8ec1 --- /dev/null +++ b/clusters/gdp-jetson-upgrade.morph @@ -0,0 +1,19 @@ +name: gdp-jetson-upgrade +kind: cluster +systems: +- morph: systems/genivi-demo-platform-armv7lhf-jetson.morph + deploy-defaults: + BOOT_DEVICE: "/dev/mmcblk0p1" + ROOT_DEVICE: "/dev/mmcblk0p2" + DTB_PATH: "boot/tegra124-jetson-tk1.dtb" + BOOTLOADER_CONFIG_FORMAT: "extlinux" + BOOTLOADER_INSTALL: "none" + KERNEL_ARGS: cma=256M console=tty0 console=ttyS0,115200n8 no_console_suspend=1 nouveau.pstate=1 + FSTAB_SRC: LABEL=src /src auto defaults,rw,noatime,nofail 0 2 + GENIVI_WESTON_BACKEND: drm + GENIVI_WESTON_CONFIG: gdp + GENIVI_WESTON_AUTOSTART: True + deploy: + self: + type: extensions/ssh-rsync + location: root@127.0.0.1 diff --git a/clusters/gnome-system-x86_64-deploy.morph b/clusters/gnome-system-x86_64-deploy.morph new file mode 100644 index 00000000..0ae939f1 --- /dev/null +++ b/clusters/gnome-system-x86_64-deploy.morph @@ -0,0 +1,24 @@ +name: gnome-system-x86_64-deploy +kind: cluster +description: | + Deploy a stock weston system. + + The resulting image can be copied to a USB and booted from there, + as well as in a virtual machine. + +systems: +- morph: systems/gnome-system-x86_64.morph + deploy: + gnome-system-x86_64: + type: extensions/rawdisk + location: /gnome-system-x86_64.img + DISK_SIZE: 6G + INSTALL_FILES: install-files/gnome/manifest + KERNEL_ARGS: vga=788 + INITRAMFS_PATH: boot/initramfs.gz + subsystems: + - morph: systems/initramfs-x86_64.morph + deploy: + initramfs: + type: initramfs + location: boot/initramfs.gz diff --git a/clusters/release.morph b/clusters/release.morph index 3f597a38..dfba8ec0 100644 --- a/clusters/release.morph +++ b/clusters/release.morph @@ -40,12 +40,18 @@ systems: initramfs-build-system-x86_64: type: extensions/initramfs location: boot/initramfs.gz +- morph: systems/build-system-armv7lhf-rootfs.morph + deploy: + build-system-armv7lhf-rootfs: + type: extensions/tar + location: build-system-armv7lhf-rootfs.tar + HOSTNAME: build-system-armv7lhf-rootfs - morph: systems/build-system-armv7lhf-jetson.morph deploy: build-system-armv7lhf-jetson: type: extensions/rawdisk location: build-system-armv7lhf-jetson.img - DISK_SIZE: 2G + DISK_SIZE: 3G BOOT_DEVICE: /dev/mmcblk0p1 ROOT_DEVICE: /dev/mmcblk0p2 DTB_PATH: boot/tegra124-jetson-tk1.dtb @@ -63,6 +69,9 @@ systems: KERNEL_ARGS: vga=788 INITRAMFS_PATH: boot/initramfs.gz HOSTNAME: genivi-baseline-system-x86-64-generic + GENIVI_WESTON_BACKEND: fbdev + GENIVI_WESTON_CONFIG: baseline + GENIVI_WESTON_AUTOSTART: False subsystems: - morph: systems/initramfs-x86_64.morph deploy: @@ -83,3 +92,6 @@ systems: KERNEL_ARGS: cma=256M console=tty0 console=ttyS0,115200n8 no_console_suspend=1 nouveau.pstate=1 HOSTNAME: genivi-baseline-system-armv7lhf-jetson + GENIVI_WESTON_BACKEND: drm + GENIVI_WESTON_CONFIG: baseline + GENIVI_WESTON_AUTOSTART: False diff --git a/clusters/trove.baserock.org-upgrade.morph b/clusters/trove.baserock.org-upgrade.morph index e66fd6bc..ff56d91b 100644 --- a/clusters/trove.baserock.org-upgrade.morph +++ b/clusters/trove.baserock.org-upgrade.morph @@ -5,7 +5,7 @@ description: | git.baserock.org. It doesn't work for the initial deployment. The deployer MUST have ssh access to root@git.baserock.org. To use: - morph deploy --upgrade trove.baserock.org-upgrade gbo.VERSION_LABEL=2014-05-29 + morph upgrade trove.baserock.org-upgrade gbo.VERSION_LABEL=2014-05-29 Replace the value of gbo.VERSION_LABEL above with the current date. You can add letters if you need to upgrade multiple times in a day. @@ -13,11 +13,7 @@ systems: - morph: systems/trove-system-x86_64.morph deploy: gbo: - type: extensions/ssh-rsync - location: root@git.baserock.org - FSTAB_HOME: LABEL=homes /home auto defaults,noatime,rw 0 2 - HOSTNAME: firehose1 - LORRY_CONTROLLER_MINIONS: 4 - TROVE_COMPANY: Baserock - TROVE_HOSTNAME: git.baserock.org - TROVE_ID: baserock + upgrade-type: extensions/ssh-rsync + upgrade-location: root@git.baserock.org + HOSTNAME: baserock + TROVE_GENERIC: True diff --git a/clusters/xfce-system-x86_64-deploy.morph b/clusters/xfce-system-x86_64-deploy.morph new file mode 100644 index 00000000..e8bfe1e9 --- /dev/null +++ b/clusters/xfce-system-x86_64-deploy.morph @@ -0,0 +1,23 @@ +name: xfce-system-x86_64-deploy +kind: cluster +description: | + Deploy a stock XFCE system. + + The resulting image can be copied to a USB and booted from there, + as well as in a virtual machine. + +systems: +- morph: systems/xfce-system-x86_64.morph + deploy: + xfce-system-x86_64: + type: extensions/rawdisk + location: /xfce-system-x86_64.img + DISK_SIZE: 6G + KERNEL_ARGS: vga=788 + INITRAMFS_PATH: boot/initramfs.gz + subsystems: + - morph: systems/initramfs-x86_64.morph + deploy: + initramfs: + type: extensions/initramfs + location: boot/initramfs.gz diff --git a/extensions/ceph.configure b/extensions/ceph.configure index 190dda97..32f512ef 100644 --- a/extensions/ceph.configure +++ b/extensions/ceph.configure @@ -1,5 +1,5 @@ -#!/usr/bin/python -# Copyright (C) 2013 Codethink Limited +#!/usr/bin/env python +# Copyright (C) 2013-2015 Codethink Limited # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -28,11 +28,11 @@ Description=Ceph Monitor firstboot setup After=network-online.target [Service] -ExecStart=/bin/bash -c "/root/setup-ceph-head | tee /root/monitor-setuplog" -ExecStartPost=/bin/rm /etc/systemd/system/multi-user.target.wants/ceph-monitor-fboot.service +ExecStart=/bin/sh /root/setup-ceph-head +ExecStartPost=/bin/systemctl disable ceph-monitor-fboot.service [Install] -Wanted-By=multi-user.target +WantedBy=multi-user.target """ systemd_monitor_fname_template = "ceph-monitor-fboot.service" @@ -43,46 +43,71 @@ Description=Ceph osd firstboot setup After=network-online.target [Service] -ExecStart=/bin/bash -c "/root/setup-ceph-node | tee /root/storage-setuplog" -ExecStartPost=/bin/rm /etc/systemd/system/multi-user.target.wants/ceph-storage-fboot.service +ExecStart=/bin/sh /root/setup-ceph-node +ExecStartPost=/bin/systemctl disable ceph-storage-fboot.service [Install] -Wanted-By=multi-user.target +WantedBy=multi-user.target """ systemd_osd_fname_template = "ceph-storage-fboot.service" -ceph_monitor_config_template = """#!/bin/bash -ceph-authtool --create-keyring /tmp/ceph.mon.keyring --gen-key -n mon. --cap mon 'allow *' -ceph-authtool --create-keyring /etc/ceph/ceph.client.admin.keyring --gen-key -n client.admin --set-uid=0 --cap mon 'allow *' --cap osd 'allow *' --cap mds 'allow' -ceph-authtool /tmp/ceph.mon.keyring --import-keyring /etc/ceph/ceph.client.admin.keyring -monmaptool --create --add 0 10.0.100.2 --fsid 9ceb9257-7541-4de4-b34b-586079986700 /tmp/monmap -mkdir /var/lib/ceph/mon/ceph-0 -ceph-mon --mkfs -i 0 --monmap /tmp/monmap --keyring /tmp/ceph.mon.keyring -/etc/init.d/ceph start mon.0 -touch ~/monitor-configured +ceph_monitor_config_template = """#!/bin/sh +hn={self.hostname} +monIp={self.mon_ip} +clustFsid={self.cluster_fsid} +ceph-authtool --create-keyring /tmp/ceph.mon.keyring \ + --gen-key -n mon. --cap mon 'allow *' +ceph-authtool /tmp/ceph.mon.keyring \ + --import-keyring /etc/ceph/ceph.client.admin.keyring +monmaptool --create --add "$hn" "$monIp" --fsid "$clustFsid" /tmp/monmap +mkdir -p /var/lib/ceph/mon/ceph-"$hn" +ceph-mon --mkfs -i "$hn" --monmap /tmp/monmap --keyring /tmp/ceph.mon.keyring +systemctl enable ceph-mon@"$hn".service +systemctl start ceph-mon@"$hn".service """ -ceph_storage_config_template = """#!/bin/bash -scp 10.0.100.2:/var/lib/ceph/bootstrap-osd/ceph.keyring /var/lib/ceph/bootstrap-osd/ -echo -e "n\np\n1\n\n\nw\n" | fdisk /dev/sdb -ceph-disk prepare --cluster ceph --cluster-uuid 9ceb9257-7541-4de4-b34b-586079986700 --fs-type ext4 /dev/sdb1 -sudo ceph-disk activate /dev/sdb1 -/etc/init.d/ceph start osd.0 -touch ~/storage-configured +ceph_storage_config_template = """#!/bin/sh +storageDisk={self.osd_storage_dev} +if `file -sL "$storageDisk" | grep -q ext4`; then + echo "ext4 disk detected. Proceding..." +else + echo "ERROR: ext4 disk required." \ + "Ensure $storageDisk is formated as ext4." >&2 + exit 1 +fi +hn={self.hostname} +uuid="`uuidgen`" +osdnum="`ceph osd create $uuid`" +mkdir /var/lib/ceph/osd/ceph-"$osdnum" +mount -o user_xattr "$storageDisk" /var/lib/ceph/osd/ceph-"$osdnum" +ceph-osd -i "$osdnum" --mkfs --mkkey --osd-uuid "$uuid" +ceph auth add osd."$osdnum" osd 'allow *' mon 'allow profile osd' \ + -i /var/lib/ceph/osd/ceph-"$osdnum"/keyring +ceph osd crush add-bucket "$hn" host +ceph osd crush move "$hn" root=default +ceph osd crush add osd."$osdnum" 1.0 host="$hn" +systmectl enable ceph-osd@"$osdnum".service +systemctl start ceph-osd@"$osdnum".service +echo "$storageDisk /var/lib/ceph/osd/ceph-$osdnum/ ext4 defaults 0 2" \ + >> /etc/fstab """ -executable_file_permissions = stat.S_IRUSR | stat.S_IXUSR | stat.S_IWUSR | \ - stat.S_IXGRP | stat.S_IRGRP | \ - stat.S_IXOTH | stat.S_IROTH +executable_file_permissions = ( + stat.S_IRUSR | stat.S_IXUSR | stat.S_IWUSR | + stat.S_IXGRP | stat.S_IRGRP | stat.S_IXOTH | + stat.S_IROTH ) class CephConfigurationExtension(writeexts.Extension): """ Set up ceph server daemons. + Support for metadata server has not been tested. + Must include the following environment variables: HOSTNAME - Must be defined it is used as the ID for the monitor and metadata daemons. + CEPH_CONF - Provide a ceph configuration file. Optional environment variables: @@ -91,6 +116,7 @@ class CephConfigurationExtension(writeexts.Extension): CEPH_BOOTSTRAP_OSD - Registered key capable of generating OSD keys. + CEPH_BOOTSTRAP_MDS - Registered key capable of generating MDS keys. @@ -99,13 +125,25 @@ class CephConfigurationExtension(writeexts.Extension): by 'ceph-deploy gatherkeys' but can be generated and registered separately. + CEPH_CLIENT_ADMIN - Key required by any ceph action that requires + client admin authentication to run + CEPH_MON - (Blank) Create a ceph monitor daemon on the image. CEPH_MON_KEYRING - Location of monitor keyring. Required by the monitor if using cephx authentication. - + CEPH_MON_IP - ip address that the monitor node will have. This is required + if CEPH_MON is set. It should also be set in the CEPH_CONF + file too. + CEPH_CLUSTER_FSID - A uuid for the ceph cluster. This is required if + CEPH_MON is set. It should also be set in the + CEPH_CONF file too. + + CEPH_OSD - (Blank) Create a ceph object storage daemon on the image. CEPH_OSD_X_DATA_DIR - Location of data directory for OSD. Create an OSD daemon on image. 'X' is an integer id, many osd daemons may be run on same server. + CEPH_OSD_STORAGE_DEV - Location of the storage device to be used to host + the osd file system. This is a required field. CEPH_MDS - (Blank) Create a metadata server daemon on server. """ @@ -113,21 +151,18 @@ class CephConfigurationExtension(writeexts.Extension): def process_args(self, args): if "HOSTNAME" not in os.environ: - print "ERROR: Need a hostname defined by 'HOSTNAME'" - sys.exit(1) - if "CEPH_CLUSTER" not in os.environ: - print "ERROR: Need a cluster name defined by 'CEPH_CLUSTER'" - sys.exit(1) + sys.exit( "ERROR: Need a hostname defined by 'HOSTNAME'" ) if "CEPH_CONF" not in os.environ: - print "ERROR: Need a ceph conf file defined by 'CEPH_CONF'" - sys.exit(1) + sys.exit( "ERROR: Need a ceph conf file defined by 'CEPH_CONF'" ) self.dest_dir = args[0] - self.cluster_name = os.environ["CEPH_CLUSTER"] + self.cluster_name = "ceph" self.hostname = os.environ["HOSTNAME"] self.conf_file = "/etc/ceph/{}.conf".format(self.cluster_name) + self.admin_file = os.path.join( "/etc/ceph/", + "{}.client.admin.keyring".format(self.cluster_name) ) self.mon_dir = "/var/lib/ceph/mon/" self.osd_dir = "/var/lib/ceph/osd/" self.mds_dir = "/var/lib/ceph/mds/" @@ -135,32 +170,68 @@ class CephConfigurationExtension(writeexts.Extension): self.bootstrap_mds_dir = "/var/lib/ceph/bootstrap-mds/" self.bootstrap_osd_dir = "/var/lib/ceph/bootstrap-osd/" self.systemd_dir = "/etc/systemd/system/" - self.systemd_multiuser_dir = "/etc/systemd/system/multi-user.target.wants/" + self.systemd_multiuser_dir = \ + "/etc/systemd/system/multi-user.target.wants/" + + print "Copying from " + os.getcwd() self.copy_to_img(os.environ["CEPH_CONF"], self.conf_file) + + # If the clustername is provided set it accprdingly. Default is "ceph" + if "CEPH_CLUSTER" in os.environ: + self.cluster_name = os.environ["CEPH_CLUSTER"] + # Copy over bootstrap keyrings if "CEPH_BOOTSTRAP_OSD" in os.environ: self.copy_bootstrap_osd(os.environ["CEPH_BOOTSTRAP_OSD"]); if "CEPH_BOOTSTRAP_MDS" in os.environ: self.copy_bootstrap_mds(os.environ["CEPH_BOOTSTRAP_MDS"]); + # Copy over admin keyring + if "CEPH_CLIENT_ADMIN" in os.environ: + self.copy_to_img(os.environ["CEPH_CLIENT_ADMIN"], self.admin_file); + # Configure any monitor daemons if "CEPH_MON" in os.environ: + + # check for and set self.mon_ip : needs static value. + if "CEPH_MON_IP" not in os.environ: + sys.exit("ERROR: Static ip required for the monitor node") + else: + self.mon_ip = os.environ["CEPH_MON_IP"] + + # Check and set for cluster fsid : can have default + if "CEPH_CLUSTER_FSID" not in os.environ: + sys.exit("ERROR: UUID fsid value required for cluster.") + else: + self.cluster_fsid = os.environ["CEPH_CLUSTER_FSID"] + self.create_mon_data_dir(os.environ.get("CEPH_MON_KEYRING")) - else: - self.create_osd_startup_script("None", "None") # Configure any object storage daemons - osd_re = r"CEPH_OSD_(\d+)_DATA_DIR$" + if "CEPH_OSD" in os.environ: + + # Check a osd storage device has been provided + if "CEPH_OSD_STORAGE_DEV" not in os.environ: + sys.exit("ERROR: Storage device required. \ + Set 'CEPH_OSD_STORAGE_DEV'.") + else: + self.osd_storage_dev = os.environ["CEPH_OSD_STORAGE_DEV"] - for env in os.environ.keys(): - match = re.match(osd_re, env) - if match: - osd_data_dir_env = match.group(0) - osd_id = match.group(1) + self.create_osd_startup_script() + + osd_re = r"CEPH_OSD_(\d+)_DATA_DIR$" + + for env in os.environ.keys(): + match = re.match(osd_re, env) + if match: + osd_data_dir_env = match.group(0) + osd_id = match.group(1) + + self.create_osd_data_dir(osd_id, + os.environ.get(osd_data_dir_env)) - self.create_osd_data_dir(osd_id, os.environ.get(osd_data_dir_env)) # Configure any mds daemons if "CEPH_MDS" in os.environ: @@ -179,88 +250,95 @@ class CephConfigurationExtension(writeexts.Extension): def copy_bootstrap_osd(self, src_file): self.copy_to_img(src_file, - os.path.join(self.bootstrap_osd_dir, "{}.keyring".format(self.cluster_name))) + os.path.join(self.bootstrap_osd_dir, + "{}.keyring".format(self.cluster_name))) def copy_bootstrap_mds(self, src_file): self.copy_to_img(src_file, - os.path.join(self.bootstrap_mds_dir, "{}.keyring".format(self.cluster_name))) + os.path.join(self.bootstrap_mds_dir, + "{}.keyring".format(self.cluster_name))) def symlink_to_multiuser(self, fname): - print >> sys.stderr, os.path.join("../", fname) - print >> sys.stderr, self.dest_dir + os.path.join(self.systemd_multiuser_dir, fname) + sys.stderr.write( os.path.join("../", fname) ) + sys.stderr.write( self.dest_dir + + os.path.join(self.systemd_multiuser_dir, fname) ) + print "Linking: %s into %s"%(fname, self.systemd_multiuser_dir) os.symlink(os.path.join("../", fname), - self.dest_dir + os.path.join(self.systemd_multiuser_dir, fname)) + self.dest_dir + + os.path.join(self.systemd_multiuser_dir, fname)) def create_mon_data_dir(self, src_keyring): - #Create the monitor data directory - mon_data_dir = os.path.join(self.mon_dir, "{}-{}".format(self.cluster_name, self.hostname)) - os.makedirs(self.dest_dir + mon_data_dir) - - #Create sysvinit file to start via sysvinit - sysvinit_file = os.path.join(mon_data_dir, "sysvinit") - open(self.dest_dir + sysvinit_file, 'a').close() - - #Create systemd file to initialize the monitor data directory + # Create systemd file to initialize the monitor data directory keyring = "" - if src_keyring: - #Copy the keyring from local to the image - dest_keyring = os.path.join(self.tmp_dir, - "{}-{}.mon.keyring".format(self.cluster_name, self.hostname)) - self.copy_to_img(src_keyring, dest_keyring) - keyring = "--keyring " + dest_keyring - mon_systemd_fname = systemd_monitor_fname_template - systemd_script_name = self.dest_dir + os.path.join(self.systemd_dir, mon_systemd_fname) + + systemd_script_name = self.dest_dir \ + + os.path.join(self.systemd_dir, mon_systemd_fname) + print "Write monitor systemd script to " + systemd_script_name mon_systemd = open(systemd_script_name, 'w') mon_systemd.write(systemd_monitor_template) mon_systemd.close() - #Create a symlink to the multi user target + # Create a symlink to the multi user target self.symlink_to_multiuser(mon_systemd_fname) def create_osd_data_dir(self, osd_id, data_dir): if not data_dir: data_dir = '/srv/osd' + osd_id - #Create the osd data dir + # Create the osd data dir os.makedirs(self.dest_dir + data_dir) - def create_osd_startup_script(self, osd_id, data_dir): + def create_osd_startup_script(self): osd_systemd_fname = systemd_osd_fname_template - osd_full_name = self.dest_dir + os.path.join(self.systemd_dir, osd_systemd_fname) + + osd_full_name = self.dest_dir + \ + os.path.join(self.systemd_dir, osd_systemd_fname) + print "Write Storage systemd script to " + osd_full_name osd_systemd = open(osd_full_name, 'w') osd_systemd.write(systemd_osd_template) osd_systemd.close() - #Create a symlink to the multi user target + # Create a symlink to the multi user target self.symlink_to_multiuser(osd_systemd_fname) def create_mds_data_dir(self): - #Create the monitor data directory - mds_data_dir = os.path.join(self.mds_dir, "{}-{}".format(self.cluster_name, self.hostname)) + # Create the monitor data directory + mds_data_dir = os.path.join(self.mds_dir, + "{}-{}".format(self.cluster_name, self.hostname)) os.makedirs(self.dest_dir + mds_data_dir) - #Create sysvinit file to start via sysvinit + # Create sysvinit file to start via sysvinit sysvinit_file = os.path.join(mds_data_dir, "sysvinit") open(self.dest_dir + sysvinit_file, 'a').close() def create_startup_scripts(self): - head_setup_file = os.path.join(self.dest_dir, "root", "setup-ceph-head") + print "Copying startup scripts to node:" + + # Write monitor script if monitor requested + if "CEPH_MON" in os.environ: + head_setup_file = \ + os.path.join(self.dest_dir,"root","setup-ceph-head") + with open(head_setup_file, "w") as hs_file: + hs_file.write( ceph_monitor_config_template.format(self=self) ) + + os.chmod(head_setup_file, executable_file_permissions) - ceph_head_setup = open(head_setup_file, "w") - ceph_head_setup.write(ceph_monitor_config_template) - ceph_head_setup.close() - os.chmod(head_setup_file, executable_file_permissions) + # Write osd script if osd is requested + elif "CEPH_OSD" in os.environ: + osd_setup_file = \ + os.path.join(self.dest_dir, "root", "setup-ceph-node") + with open(osd_setup_file, "w") as os_file: + os_file.write( ceph_storage_config_template.format(self=self) ) - osd_setup_file = os.path.join(self.dest_dir, "root", "setup-ceph-node") - ceph_node_setup = open(osd_setup_file, "w") - ceph_node_setup.write(ceph_storage_config_template) - ceph_node_setup.close() - os.chmod(osd_setup_file, executable_file_permissions) + os.chmod(osd_setup_file, executable_file_permissions) + else: + print ("No valid node type defined. " + "A generic ceph node will be created.") CephConfigurationExtension().run() diff --git a/extensions/genivi.configure b/extensions/genivi.configure new file mode 100644 index 00000000..c5f6dc4f --- /dev/null +++ b/extensions/genivi.configure @@ -0,0 +1,124 @@ +#!/bin/sh + +# Copyright (C) 2015 Codethink Limited +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; version 2 of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program. If not, see <http://www.gnu.org/licenses/>. + +set -e + +ROOT="$1" + +enable(){ + ln -sf "/usr/lib/systemd/system/$1.service" \ + "$ROOT/etc/systemd/system/multi-user.target.wants/$1.service" +} + +unnaceptable(){ + eval echo Unexpected value \$$1 for $1 >&2 + exit 1 +} + +check_bool(){ + case "$(eval echo \"\$$1\")" in + True) + eval "$1=true" + ;; + False|'') + eval "$1=false" + ;; + *) + unnaceptable "$1" + ;; + esac +} + +check_weston_config(){ + weston_ini_folder="$ROOT/usr/share/doc/weston" + case "$GENIVI_WESTON_CONFIG" in + 'baseline'|'') + weston_ini_file=ivi-shell-weston.ini + ;; + 'gdp') + weston_ini_file=gdp-weston.ini + ;; + *) + unnaceptable "GENIVI_WESTON_CONFIG" + ;; + esac + weston_ini_file="$weston_ini_folder/$weston_ini_file" + if [ ! -f "$weston_ini_file" ]; then + echo ERROR: Failed to locate weston config file: $weston_ini_file + exit 1 + fi +} + +check_weston_backend (){ + # If nothing defined, use drm-backend.so + if [ "x$GENIVI_WESTON_BACKEND" == "x" ]; then + echo GENIVI_WESTON_BACLEND not set, defaulting to drm-backend.so + GENIVI_WESTON_BACKEND=drm-backend.so + fi + + backends_folder="$ROOT/usr/lib/weston" + backend_file="$backends_folder/$GENIVI_WESTON_BACKEND" + # Check that the backend exists + echo Checking for "$backend_file" ... + if [ ! -f "$backend_file" ]; then + echo "File $backend_file doesn't exist" + GENIVI_WESTON_BACKEND="$GENIVI_WESTON_BACKEND-backend.so" + backend_file="$backends_folder/$GENIVI_WESTON_BACKEND" + echo Checking for "$backend_file" ... + if [ ! -f "$backend_file" ]; then + echo "File $backend_file doesn't exist" + echo ERROR: Failed to find Weston backend in the system + exit 1 + fi + fi + echo Backend $backend_file found +} + +########################################################################## +# Check variables +########################################################################## + +check_bool GENIVI_WESTON_AUTOSTART +check_weston_config +check_weston_backend + +###################################### +# Create and enable weston.service # +###################################### + +cat > "$ROOT/usr/lib/systemd/system/weston.service" <<EOF +[Unit] +Description=Weston reference Wayland compositor +After=dbus.service + +[Service] +ExecStart=/usr/bin/weston-launch -u root -- --log=/tmp/weston.log --backend="$GENIVI_WESTON_BACKEND" +ExecStop=/usr/bin/killall -s KILL weston + +[Install] +WantedBy=multi-user.target +EOF + +if "$GENIVI_WESTON_AUTOSTART"; then + enable weston +fi + +###################################### +# Set weston.ini file # +###################################### + +install -d "$ROOT/etc/xdg/weston" +install -m 0644 $weston_ini_file "$ROOT/etc/xdg/weston/weston.ini" diff --git a/extensions/genivi.configure.help b/extensions/genivi.configure.help new file mode 100644 index 00000000..6616f871 --- /dev/null +++ b/extensions/genivi.configure.help @@ -0,0 +1,25 @@ +help: | + This extension configures GENIVI systems. It uses the following + configuration variables: + + * `GENIVI_WESTON_CONFIG` (optional, defaults to `baseline`) + the weston configuration file to use. The GENIVI baseline system + uses a different one than the GENIVI Demo Platform. + + Possibles values here are `baseline` and `gdp`. Other values will + fail. The extension will copy the relevant configuration file + from `/usr/share/doc/weston/` to `/etc/xdg/weston/weston.ini` + to make it the default configuration for Weston. + + * `GENIVI_WESTON_BACKEND` (optional, defaults to 'drm-backend.so') + the backend to use with Weston. This backend will be used in + the `weston.service` systemd unit overriding the default backend + specified when building Weston. + + The extension looks for the backend in the system, failing if + it's not present. It will also try to append `-backend.so` to + the variable so that (e.g) you can set this variable to `fbdev` + and to `fbdev-backend.so`. + + * `GENIVI_WESTON_AUTOSTART`(optional. defaults to 'False') + boolean. If `True` it will enable the `weston.service`. diff --git a/extensions/install-essential-files.configure b/extensions/install-essential-files.configure index 3d33fe03..8314b56d 100755 --- a/extensions/install-essential-files.configure +++ b/extensions/install-essential-files.configure @@ -27,6 +27,14 @@ import subprocess import sys target_root = sys.argv[1] + +# Clear all INSTALL_FILES environment variable options, +# so we don't end up installing INSTALL_FILES_foo multiple times. +for var in list(os.environ): + if var.startswith("INSTALL_FILES"): + del os.environ[var] + +# Force installation of the essential-files manifest os.environ["INSTALL_FILES"] = "install-files/essential-files/manifest" -command = os.path.join("extensions/install-files.configure") +command = "extensions/install-files.configure" subprocess.check_call([command, target_root]) diff --git a/extensions/install-files.configure b/extensions/install-files.configure index 64fcecca..782065d1 100755 --- a/extensions/install-files.configure +++ b/extensions/install-files.configure @@ -16,7 +16,7 @@ ''' A Morph configuration extension for adding arbitrary files to a system -It will read the manifest files specified in the environment variable +It will read the manifest files specified in environment variables starting INSTALL_FILES, then use the contens of those files to determine which files to install into the target system. @@ -41,12 +41,14 @@ import writeexts class InstallFilesConfigureExtension(writeexts.Extension): def process_args(self, args): - if not 'INSTALL_FILES' in os.environ: + if not any(var.startswith('INSTALL_FILES') for var in os.environ): return target_root = args[0] - manifests = shlex.split(os.environ['INSTALL_FILES']) - for manifest in manifests: - self.install_manifest(manifest, target_root) + for manifest_var in sorted((var for var in os.environ + if var.startswith('INSTALL_FILES'))): + manifests = shlex.split(os.environ[manifest_var]) + for manifest in manifests: + self.install_manifest(manifest, target_root) def install_manifest(self, manifest, target_root): manifest_dir = os.path.dirname(manifest) diff --git a/extensions/install-files.configure.help b/extensions/install-files.configure.help index 991c26c8..191e1378 100644 --- a/extensions/install-files.configure.help +++ b/extensions/install-files.configure.help @@ -40,6 +40,18 @@ help: | INSTALL_FILES: sshkeysfiles/manifest + All variables starting INSTALL_FILES are considered, and are processed in + alphabetical order, so if INSTALL_FILES, INSTALL_FILES_distbuild and + INSTALL_FILES_openstack are given, manifests in INSTALL_FILES are processed + before those in INSTALL_FILES_distbuild, followed by INSTALL_FILES_openstack. + + Multiple manifest files may be given in the same INSTALL_FILES variable, + by providing a whitespace separated list. + + Shell word splitting is supported, so if a manifest's path has spaces in, + the path may be shell escaped. + + More generally entries in the manifest are formatted as: [overwrite] <octal mode> <uid decimal> <gid decimal> <filename> diff --git a/extensions/mason/mason-report.sh b/extensions/mason/mason-report.sh index 31745b93..04bd0fe2 100755 --- a/extensions/mason/mason-report.sh +++ b/extensions/mason/mason-report.sh @@ -289,3 +289,9 @@ update_report "$START_TIME" \ cp "$REPORT_PATH" "$SERVER_REPORT_PATH" mkdir "$SERVER_PATH/log" mv "$logfile" "$SERVER_PATH/$BUILD_LOG" + +# Cleanup + +mkdir -p /srv/distbuild/remove +mv /srv/distbuild/!(remove) /srv/distbuild/remove +rm -r /srv/distbuild/remove diff --git a/extensions/openstack.write b/extensions/openstack.write index f1233560..f0d2fc0b 100755 --- a/extensions/openstack.write +++ b/extensions/openstack.write @@ -51,7 +51,7 @@ class OpenStackWriteExtension(writeexts.WriteExtension): def set_extlinux_root_to_virtio(self, raw_disk): '''Re-configures extlinux to use virtio disks''' self.status(msg='Updating extlinux.conf') - with self.mount(raw_disk) as mp: + with self.find_and_mount_rootfs(raw_disk) as mp: path = os.path.join(mp, 'extlinux.conf') with open(path) as f: diff --git a/extensions/partitioning.py b/extensions/partitioning.py new file mode 100644 index 00000000..1c295697 --- /dev/null +++ b/extensions/partitioning.py @@ -0,0 +1,163 @@ +#!/usr/bin/python +# Copyright (C) 2015 Codethink Limited +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; version 2 of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program. If not, see <http://www.gnu.org/licenses/>. + + +"""A module providing Baserock-specific partitioning functions""" + +import os +import pyfdisk +import re +import subprocess +import writeexts + +def do_partitioning(location, disk_size, temp_root, part_spec): + '''Perform partitioning + + Perform partitioning using the pyfdisk.py module. Documentation + for this, and guidance on how to create a partition specification can + be found in extensions/pyfdisk.README + + This function also validates essential parts of the partition layout + + Args: + location: Path to the target device or image + temp_root: Location of the unpacked Baserock rootfs + part_spec: Path to a YAML formatted partition specification + Returns: + A pyfdisk.py Device object + Raises: + writeexts.ExtensionError + ''' + # Create partition table and filesystems + try: + dev = pyfdisk.load_yaml(location, disk_size, part_spec) + writeexts.Extension.status(msg='Loaded partition specification: %s' % + part_spec) + + # FIXME: GPT currently not fully supported due to missing tools + if dev.partition_table_format.lower() == 'gpt': + writeexts.Extension.status(msg='WARNING: GPT partition tables ' + 'are not currently supported, ' + 'when using the extlinux ' + 'bootloader') + + writeexts.Extension.status(msg='Summary:\n' + str(dev.partitionlist)) + writeexts.Extension.status(msg='Writing partition table') + dev.commit() + dev.create_filesystems(skip=('/')) + except (pyfdisk.PartitioningError, pyfdisk.FdiskError) as e: + raise writeexts.ExtensionError(e.msg) + + mountpoints = set(part.mountpoint for part in dev.partitionlist + if hasattr(part, 'mountpoint')) + if '/' not in mountpoints: + raise writeexts.ExtensionError('No partition with root ' + 'mountpoint, please specify a ' + 'partition with \'mountpoint: /\' ' + 'in the partition specification') + + mounted_partitions = set(part for part in dev.partitionlist + if hasattr(part, 'mountpoint')) + + for part in mounted_partitions: + if not hasattr(part, 'filesystem'): + raise writeexts.ExtensionError('Cannot mount a partition ' + 'without filesystem, please specify one ' + 'for \'%s\' partition in the partition ' + 'specification' % part.mountpoint) + if part.mountpoint == '/': + # Check that bootable flag is set for MBR devices + if (hasattr(part, 'boot') + and str(part.boot).lower() not in ('yes', 'true') + and dev.partition_table_format.lower() == 'mbr'): + writeexts.Extension.status(msg='WARNING: Boot partition ' + 'needs bootable flag set to ' + 'boot with extlinux/syslinux') + + return dev + +def process_raw_files(dev, temp_root): + if hasattr(dev, 'raw_files'): + write_raw_files(dev.location, temp_root, dev) + for part in dev.partitionlist: + if hasattr(part, 'raw_files'): + # dd seek=n is used, which skips n blocks before writing, + # so we must skip n-1 sectors before writing in order to + # start writing files to the first block of the partition + write_raw_files(dev.location, temp_root, part, + (part.extent.start - 1) * dev.sector_size) + +def write_raw_files(location, temp_root, dev_or_part, start_offset=0): + '''Write files with `dd`''' + offset = 0 + for raw_args in dev_or_part.raw_files: + r = RawFile(temp_root, start_offset, offset, **raw_args) + offset = r.next_offset + r.dd(location) + + +class RawFile(object): + '''A class to hold information about a raw file to write to a device''' + + def __init__(self, source_root, + start_offset=0, wr_offset=0, + sector_size=512, **kwargs): + '''Initialisation function + + Args: + source_root: Base path for filenames + wr_offset: Offset to write to (and offset per-file offsets by) + sector_size: Device sector size (default: 512) + **kwargs: + file: A path to the file to write (combined with source_root) + offset_sectors: An offset to write to in sectors (optional) + offset_bytes: An offset to write to in bytes (optional) + ''' + if 'file' not in kwargs: + raise writeexts.ExtensionError('Missing file name or path') + self.path = os.path.join(source_root, + re.sub('^/', '', kwargs['file'])) + + if not os.path.exists(self.path): + raise writeexts.ExtensionError('File not found: %s' % self.path) + elif os.path.isdir(self.path): + raise writeexts.ExtensionError('Can only dd regular files') + else: + self.size = os.stat(self.path).st_size + + self.offset = start_offset + if 'offset_bytes' in kwargs: + self.offset += pyfdisk.human_size(kwargs['offset_bytes']) + elif 'offset_sectors' in kwargs: + self.offset += kwargs['offset_sectors'] * sector_size + else: + self.offset += wr_offset + + self.skip = pyfdisk.human_size(kwargs.get('skip_bytes', 0)) + self.count = pyfdisk.human_size(kwargs.get('count_bytes', self.size)) + + # Offset of the first free byte after this file (first byte of next) + self.next_offset = self.size + self.offset + + def dd(self, location): + writeexts.Extension.status(msg='Writing %s at %d bytes' % + (self.path, self.offset)) + subprocess.check_call(['dd', 'if=%s' % self.path, + 'of=%s' % location, 'bs=1', + 'seek=%d' % self.offset, + 'skip=%d' % self.skip, + 'count=%d' % self.count, + 'conv=notrunc']) + subprocess.check_call('sync') diff --git a/extensions/pyfdisk.README b/extensions/pyfdisk.README new file mode 100644 index 00000000..8b3b941b --- /dev/null +++ b/extensions/pyfdisk.README @@ -0,0 +1,144 @@ +Introduction +============ + +The pyfdisk.py module provides a basic Python wrapper around command-line +fdisk from util-linux, and some assorted related functions for querying +information from real disks or disk images. + + +YAML partition specification +============================ + +A YAML file may be loaded, using the function load_yaml(). This can contain +all the information needed to create a Device object which can then be +committed to disk. + +The format of this file is as follows: + + start_offset: 2048 + partition_table_format: gpt + partitions: + - description: boot + size: 1M + fdisk_type: 0x0B + filesystem: vfat + boot: yes + mountpoint: /boot + - description: rootfs + number: 3 + size: 10G + filesystem: btrfs + fdisk_type: 0x83 + mountpoint: / + - description: src + size: fill + filesystem: ext4 + fdisk_type: 0x81 + mountpoint: /src + +There are a couple of global attributes: + +* 'start_offset': specifies the start sector of the first partition on the + device (default: 2048) + +* 'partition_table_format': specifies the partition table format to be used + when creating the partition table. Possible format + strings are 'gpt', 'dos', or 'mbr' ('dos' and + 'mbr' are interchangeable). (default: gpt) + +Following this, up to 4 (for MBR) or 128 (for GPT) partitions can be +specified, in the list, 'partitions'. For partitions, 'size', 'fdisk_type' and +'filesystem' are required. + +* 'size' is the size in bytes, or 'fill', which will expand the partition to + fill any unused space. Multiple partitions with 'size: fill' will share the + free space on the device. Human readable formatting can be used: K, M, G, T, + for integer multiples (calculated as powers of 2^n) + +* 'fdisk_type' is the fdisk partition type, specified as a hexadecimal value + (default: 0x81) + +* 'filesystem' specifies a filesystem to be created on the partition. It can + be a filesystem with associated any mkfs.* tool, or 'none' for an + unformatted partition. + +Optional partition attributes include: + +* 'number' is optional, and can be used to override the numbering of + partitions, if it is desired to have partition numbering that differs from + the physical order of the partitions on the disk. + - For all un-numbered partitions, the physical order of partitions on the + device is determined by the order in which they appear in the + specification. + - For any partitions without a specified number, partition numbering is + handled automatically. In the example above, /boot is 1, /src is 2, + and / is 3, even though the physical order differs. + +* 'boot' sets the partition's bootable flag (currently only for MBR partition + tables) + +* 'mountpoint' specifies a mountpoint of a partition. One partition must + have a '/' mountpoint to contain the rootfs, otherwise this is optional. + Files present in the rootfs under the mount point for a given partition will + be copied to the created partition. + +load_yaml() produces a Device object, populated with any partitions contained +in the specification. + + +Objects +======= + +Partition - An object containing properties of a partition + +Device - An object holding information about a physical device, and the + overall properties of the partitioning scheme. It contains a + PartitionList holding the partitions on the device. + +PartitionList - An object which holds a list of partitions on the disk. New + partitions can be added to the list at any time. When the list + is queried, properties of partitions which depend on the + properties of the other partitions in the list, for example + the size of a fill partition, or numbering, are recalculated, + and an updated copy of a Partition object is returned. + +Extent - An object which helps encapsulate sector dimensions for partitions + and devices. + + +Quick start +=========== + + >>> dev = pyfdisk.Device('test.img', 'fill') + >>> print dev + <Device: location=test.img, size=16777216, partitions: 0> + >>> part = pyfdisk.Partition(size='1M', fdisk_type=0x81, filesystem='ext4', mountpoint='/test1') + >>> part2 = pyfdisk.Partition(size='fill', filesystem='btrfs', mountpoint='/test2') + >>> dev.add_partition(part) + >>> dev.add_partition(part2) + >>> print dev.partitionlist + Partition + size: 14663168 + fdisk type: 0x81 + filesystem: btrfs + start: 4096 + end: 32734 + number: 2 + mountpoint: /test2 + Partition + size: 1048576 + fdisk type: 0x81 + filesystem: ext4 + start: 2048 + end: 4095 + number: 1 + mountpoint: /test1 + >>> dev.commit() + Creating GPT partition table on test.img + + $ fdisk -l test.img + Disk test.img: 16 MiB, 16777216 bytes, 32768 sectors + ... + Device Start End Sectors Size Type + test.img1 2048 4095 2048 1M Linux filesystem + test.img2 4096 32734 28639 14M Linux filesystem diff --git a/extensions/pyfdisk.py b/extensions/pyfdisk.py new file mode 100644 index 00000000..265dc64e --- /dev/null +++ b/extensions/pyfdisk.py @@ -0,0 +1,766 @@ +#!/usr/bin/env python2 +# Copyright (C) 2015 Codethink Limited +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; version 2 of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program. If not, see <http://www.gnu.org/licenses/>. + +""" +A simple Python wrapper for fdisk + + * Intends to have as few dependencies as possible, beyond command line fdisk + * Intends to work on Linux, though may work on other operating systems with + fdisk from util-linux. + * Provides for the creation of MBR and GPT partitioned images or devices + * Includes some utility functions for reading information from existing + partition tables + +Caveats: + * Designed to cater for disks using 4096 byte sectors, although this hasn't + been tested yet. +""" + +import contextlib +from copy import deepcopy +import re +import subprocess +import time +import yaml + + +class Extent(object): + """ + A class to hold start and end points for other objects + + Start and end points are measured in sectors. This class transparently + handles the inclusive nature of the start and end sectors of blocks of + storage. It also allows extents to be aligned within other extents. + """ + + def __init__(self, start=0, length=0, end=0): + if length and not start: + raise PartitioningError('Extent requires a non-zero start ' + 'point and length') + if start and length: + self.start = int(start) + self.end = int(start) + int(length) - 1 + else: + self.start = int(start) + self.end = int(end) + + self.filled_sectors = 0 + + def __max__(self): + return self.end + + def __min__(self): + return self.start + + def __len__(self): + return self.end - self.start + 1 + + def __add__(self, other): + """Return the sum of two extents""" + return Extent(start=self.start, + length=(len(self) + len(other))) + + def __iadd__(self, other): + """+=""" + self.end += len(other) + return self + + def __gt__(self, other): + return len(self) > len(other) + + def __lt__(self, other): + return not self > other + + def __str__(self): + return ('<Extent: Start=%d, End=%d, Length=%d>' % + (self.start, self.end, len(self))) + + def pack(self, other): + """ + Return a new Extent aligned to self's first unused sector + + This is done by length, to quantify fitting an area of disk space + inside the other. The filled space in self is calculated and updated. + + Returns: + A new Extent, starting at the first available sector in `self`, + with the same length as `other`. + """ + length_other = len(other) + first_free_sector = self.start + self.filled_sectors + if length_other + self.filled_sectors > len(self): + raise PartitioningError('Not enough free space to pack Extent') + self.filled_sectors += length_other + return Extent(start=first_free_sector, length=length_other) + + def free_sectors(self): + return len(self) - self.filled_sectors + + +class PartitionList(object): + """ + An iterable object to contain and process a list of Partition objects + + This class eases the calculation of partition sizes and numbering, since + the properties of a given partition depend on each of the other partitions + in the list. + + Attributes: + device: A Device class containing the partition list + """ + + def __init__(self, device): + """ + Initialisation function + + Args: + device: A Device object + """ + self.device = device + self.extent = device.extent + + self.__cached_list_hash = 0 + + self.__partition_list = [] + self.__iter_index = 0 + + def append(self, partition): + """Append a new Partition object to the list""" + partition.check() + if isinstance(partition, Partition): + for part in self.__partition_list: + dup_attrib = part.compare(partition) + if dup_attrib: + raise PartitioningError('Duplicated partition attribute ' + '\'%s\'' % dup_attrib) + self.__partition_list.append(partition) + else: + raise PartitioningError('PartitionList can only ' + 'contain Partition objects') + + def __iter__(self): + """Return a copy of self as an iterable object""" + self.__iter_index = 0 + copy = deepcopy(self) + return copy + + def __next__(self): + """Return the next item in an iteration""" + if self.__iter_index == len(self.__partition_list): + raise StopIteration + else: + partition = self[self.__iter_index] + self.__iter_index += 1 + return partition + + def next(self): + """Provide a next() method for Python 2 compatibility""" + return self.__next__() + + def __getitem__(self, i): + """Return an partition from the list, sorted by partition number""" + part_list = sorted(self.__update_partition_list(), + key=lambda part: part.number) + return part_list[i] + + def free_sectors(self): + """Calculate the amount of unused space in the list""" + part_list = self.__update_partition_list() + self.extent.filled_sectors = 0 + for part in part_list: + self.extent.pack(part.extent) + return self.extent.free_sectors() + + def __update_partition_list(self): + """ + Allocate extent and numbering for each Partition object in the list + + A copy of the partition list is made so that any Partition object + returned from this list is a copy of a stored Partition object, thus + any partitions stored in the partition list remain intact even if a + copy is modified after is is returned. Hashing is used to avoid + updating the list when the partition list has not changed. + """ + current_list_hash = hash(str(self.__partition_list)) + if current_list_hash == self.__cached_list_hash: + return self.__cached_list + + part_list = deepcopy(self.__partition_list) + used_numbers = set() + fill_partitions = set(partition for partition in part_list + if partition.size == 'fill') + requested_numbers = set(partition.number for partition in part_list + if hasattr(partition, 'number')) + + # Get free space and the size of 'fill' partitions + self.extent.filled_sectors = 0 + for part in part_list: + if part.size != 'fill': + extent = Extent(start=1, + length=self.get_length_sectors(part.size)) + part.extent = extent + self.extent.pack(extent) + + # Allocate aligned Extents and process partition numbers + if len(fill_partitions): + fill_size = self.extent.free_sectors() / len(fill_partitions) + # Set size of fill partitions + for part in fill_partitions: + part.size = fill_size * self.device.sector_size + part.extent = Extent(start=1, length=fill_size) + + self.extent.filled_sectors = 0 + for part in part_list: + part.extent = self.extent.pack(part.extent) + + # Find the next unused partition number if not assigned + if hasattr(part, 'number'): + num = part.number + else: + for n in range(1, self.device.max_allowed_partitions + 1): + if n not in used_numbers and n not in requested_numbers: + num = n + break + + part.number = num + used_numbers.add(num) + + self.__cached_list_hash = current_list_hash + self.__cached_list = part_list + return part_list + + def get_length_sectors(self, size_bytes): + """Get a length in sectors, aligned to 4096 byte boundaries""" + return (int(size_bytes) / self.device.sector_size + + ((int(size_bytes) % 4096) != 0) * + (4096 / self.device.sector_size)) + + def __str__(self): + string = '' + for part in self: + string = '%s\n%s\n' % (part, string) + return string.rstrip() + + def __len__(self): + return len(self.__partition_list) + + def __setitem__(self, i, value): + """Update the ith item in the list""" + self.append(partition) + + +class Partition(object): + """ + A class to describe a partition in a disk or image + + The required attributes are loaded via kwargs. + + Required attributes: + size: String describing the size of the partition in bytes + This may also be 'fill' to indicate that this partition should + be expanded to fill all unused space. Where there is more than + one fill partition, unused space is divided equally between the + fill partitions. + fdisk_type: An integer representing the hexadecimal code used by fdisk + to describe the partition type. Any partitions with + fdisk_type='none' create an area of unused space. + + Optional attributes: + **kwargs: A mapping of any keyword arguments + filesystem: A string describing the filesystem format for the + partition, or 'none' to skip filesystem creation. + description: A string describing the partition, for documentation + boot: Boolean string describing whether to set the bootable flag + mountpoint: String describing the mountpoint for the partition + number: Number used to override partition numbering for the + partition (Possible only when using an MBR partition table) + """ + def __init__(self, size=0, fdisk_type=0x81, filesystem='none', **kwargs): + if not size and 'size' not in kwargs: + raise PartitioningError('Partition must have a non-zero size') + + self.filesystem = filesystem + self.fdisk_type = fdisk_type + + self.size = human_size(size) + self.__dict__.update(**kwargs) + + def check(self): + """Check for correctness""" + if self.fdisk_type == 'none': + if self.filesystem != 'none': + raise PartitioningError('Partition: Free space ' + 'cannot have a filesystem') + if hasattr(self, 'mountpoint') and self.mountpoint != 'none': + raise PartitioningError('Partition: Free space ' + 'cannot have a mountpoint') + + def compare(self, other): + """Check for mutually exclusive attributes""" + non_duplicable = ('number', 'mountpoint') + for attrib in non_duplicable: + if hasattr(self, attrib) and hasattr(other, attrib): + if getattr(self, attrib) == getattr(other, attrib): + return attrib + return False + + def __str__(self): + string = ('Partition\n' + ' size: %s\n' + ' fdisk type: %s\n' + ' filesystem: %s' + % (self.size, + hex(self.fdisk_type) if self.fdisk_type != 'none' + else 'none', + self.filesystem)) + if hasattr(self, 'extent'): + string += ( + '\n start: %s' + '\n end: %s' + % (self.extent.start, self.extent.end)) + if hasattr(self, 'number'): + string += '\n number: %s' % self.number + if hasattr(self, 'mountpoint'): + string += '\n mountpoint: %s' % self.mountpoint + if hasattr(self, 'boot'): + string += '\n bootable: %s' % self.boot + + return string + + +class Device(object): + """ + A class to describe a disk or image, and its partition layout + + Attributes are loaded from **kwargs, containing key-value pairs describing + the required attributes. This can be loaded from a YAML file, using the + module function load_yaml(). + + Required attributes: + location: The location of the device or disk image + size: A size in bytes describing the total amount of space the + partition table on the device will occupy, or 'fill' to + automatically fill the available space. + + Optional attributes: + **kwargs: A mapping of any keyword arguments + start_offset: The first 512 byte sector of the first partition + (default: 2048) + partition_table_format: A string describing the type of partition + table used on the device (default: 'gpt') + partitions: A list of mappings for the attributes for each Partition + object. update_partitions() populates the partition list + based on the contents of this attribute. + """ + min_start_bytes = 1024**2 + + def __init__(self, location, size, **kwargs): + + if 'partition_table_format' not in kwargs: + self.partition_table_format = 'gpt' + if 'start_offset' not in kwargs: + self.start_offset = 2048 + + target_size = get_disk_size(location) + if str(size).lower() == 'fill': + self.size = target_size + else: + self.size = human_size(size) + + if self.size > target_size: + raise PartitioningError('Not enough space available on target') + + if self.size <= self.min_start_bytes: + raise PartitioningError('Device size must be greater than %d ' + 'bytes' % self.min_start_bytes) + + # Get sector size + self.sector_size = get_sector_size(location) + self.location = location + + # Populate Device attributes from keyword args + self.__dict__.update(**kwargs) + + if self.partition_table_format.lower() == 'gpt': + self.max_allowed_partitions = 128 + else: + self.max_allowed_partitions = 4 + + # Process Device size + start = (self.start_offset * 512) / self.sector_size + # Sector quantities in the specification are assumed to be 512 bytes + # This converts to the real sector size + if (start * self.sector_size) < self.min_start_bytes: + raise PartitioningError('Start offset should be greater than ' + '%d, for %d byte sectors' % + (min_start_bytes / self.sector_size, + self.sector_size)) + # Check the disk's first partition starts on a 4096 byte boundary + # this ensures alignment, and avoiding a reduction in performance + # on disks which use a 4096 byte physical sector size + if (start * self.sector_size) % 4096 != 0: + print('WARNING: Start sector is not aligned ' + 'to 4096 byte sector boundaries') + + # End sector is one sector less than the disk length + disk_end_sector = (self.size / self.sector_size) - 1 + if self.partition_table_format == 'gpt': + # GPT partition table is duplicated at the end of the device. + # GPT header takes one sector, whatever the sector size, + # with a 16384 byte 'minimum' area for partition entries, + # supporting up to 128 partitions (128 bytes per entry). + # The duplicate GPT does not include the 'protective' MBR + gpt_size = ((16 * 1024) / self.sector_size) + 1 + self.extent = Extent(start=start, + end=(disk_end_sector - gpt_size)) + else: + self.extent = Extent(start=start, end=disk_end_sector) + + self.update_partitions() + + def update_partitions(self, partitions=None): + """ + Reset list, populate with partitions from a list of attributes + + Args: + partitions: A list of partition keyword attributes + """ + + self.partitionlist = PartitionList(self) + if partitions: + self.partitions = partitions + if hasattr(self, 'partitions'): + for partition_args in self.partitions: + self.add_partition(Partition(**partition_args)) + + def add_partition(self, partition): + """ + Add a Partition object to the device's list of partitions + + Args: + partition: a Partition class + """ + + if len(self.partitionlist) < self.max_allowed_partitions: + self.partitionlist.append(partition) + else: + raise PartitioningError('Exceeded maximum number of partitions ' + 'for %s partition table (%d)' % + (self.partition_table_format.upper(), + self.max_allowed_partitions)) + + def get_partition_by_mountpoint(self, mountpoint): + """Return a Partition with a specified mountpoint""" + + return next(r for r in self.partitionlist + if hasattr(r, 'mountpoint') + and r.mountpoint == '/') + + def commit(self): + """Write the partition table to the disk or image""" + + pt_format = self.partition_table_format.lower() + print("Creating %s partition table on %s" % + (pt_format.upper(), self.location)) + + # Create a new partition table + if pt_format in ('mbr', 'dos'): + cmd = "o\n" + elif pt_format == 'gpt': + cmd = "g\n" + else: + raise PartitioningError('Unrecognised partition ' + 'table type \'%s\'' % pt_format) + + for partition in self.partitionlist: + # Create partitions + if str(partition.fdisk_type).lower() != 'none': + cmd += "n\n" + if pt_format in ('mbr', 'dos'): + cmd += "p\n" + cmd += (str(partition.number) + "\n" + "" + str(partition.extent.start) + "\n" + "" + str(partition.extent.end) + "\n") + + # Set partition types + cmd += "t\n" + if partition.number > 1: + # fdisk does not ask for a partition + # number when setting the type of the + # first created partition + cmd += str(partition.number) + "\n" + cmd += str(hex(partition.fdisk_type)) + "\n" + + # Set bootable flag + if hasattr(partition, 'boot') and pt_format == 'mbr': + if str(partition.boot).lower() in ('yes', 'true'): + cmd += "a\n" + if partition.number > 1: + cmd += str(partition.number) + "\n" + + # Write changes + cmd += ("w\n" + "q\n") + p = subprocess.Popen(["fdisk", self.location], + stdin=subprocess.PIPE, + stderr=subprocess.PIPE, + stdout=subprocess.PIPE) + output = p.communicate(cmd) + + errors = output[1].split('\n')[1:-1] + if errors: + # Exception handling is done in this way since fdisk will not + # return a failure exit code if it finds problems with its input. + # Note that the message 'disk does not contain a valid partition + # table' is not an error, it's a status message printed to stderr + # when fdisk starts with a blank device. + raise FdiskError('"%s"' % ' '.join(str(x) for x in errors)) + + def get_partition_uuid(self, partition): + """Read a partition's UUID from disk (MBR or GPT)""" + + return get_partition_uuid(self.location, partition.number, + self.partition_table_format) + + def create_filesystems(self, skip=[]): + """Create filesystems on the disk or image + + Args: + skip: An iterable of mountpoints identifying partitions to skip + filesystem creation on, for example if custom settings are + required + """ + + for part in self.partitionlist: + if hasattr(part, 'mountpoint') and part.mountpoint in skip: + continue + if part.filesystem.lower() != 'none': + with create_loopback(self.location, + part.extent.start * self.sector_size, + part.size) as loop: + print ('Creating %s filesystem on partition %s' % + (part.filesystem, part.number)) + subprocess.check_output(['mkfs.' + part.filesystem, loop]) + + def __str__(self): + return ('<Device: location=%s, size=%s, partitions: %s>' % + (self.location, self.size, len(self.partitionlist))) + + +class PartitioningError(Exception): + + def __init__(self, msg=None): + self.msg = msg + + def __str__(self): + return self.msg + + +class FdiskError(Exception): + + def __init__(self, msg=None): + self.msg = msg + + def __str__(self): + return self.msg + + +def load_yaml(location, size, yaml_file): + """ + Load partition data from a yaml specification + + The YAML file describes the attributes documented in the Device + and Partition classes. + + Args: + yaml_file: String path to a YAML file to load + location: Path to the device node or image to use for partitioning + size: The desired device size in bytes (may be 'fill' to occupy the + entire device + + Returns: + A Device object + """ + + with open(yaml_file, 'r') as f: + kwargs = yaml.safe_load(f) + return Device(location, size, **kwargs) + + +def get_sector_size(location): + """Get the logical sector size of a block device or image, in bytes""" + + return int(__filter_fdisk_list_output('Sector size.*?(\d+) bytes', + location)[0]) + +def get_disk_size(location): + """Get the total size of a block device or image, in bytes""" + + return int(__filter_fdisk_list_output('Disk.*?(\d+) bytes', + location)[0]) + +def get_partition_offsets(location): + """Return an array of the partition start sectors in a device or image""" + + return __get_fdisk_list_numeric_column(location, 1) + +def get_partition_sector_sizes(location): + """Return an array of sizes of partitions in a device or image in sectors""" + + return __get_fdisk_list_numeric_column(location, 3) + +def __get_fdisk_list_numeric_column(location, column): + return map(int, __filter_fdisk_list_output('%s(?:\d+[\*\s]+){%d}(\d+)' % + (location, column), location)) + +def __filter_fdisk_list_output(regex, location): + r = re.compile(regex, re.DOTALL) + m = re.findall(r, subprocess.check_output(['fdisk', '-l', location])) + if m: + return m + else: + raise PartitioningError('Error reading information from fdisk') + +def human_size(size_string): + """Parse strings for human readable size factors""" + + facts_of_1024 = ['', 'k', 'm', 'g', 't'] + m = re.match('^(\d+)([kmgtKMGT]?)$', str(size_string)) + if not m: + return size_string + return int(m.group(1)) * (1024 ** facts_of_1024.index(m.group(2).lower())) + +@contextlib.contextmanager +def create_loopback(mount_path, offset=0, size=0): + """ + Create a loopback device for accessing partitions in block devices + + Args: + mount_path: String path to mount + offset: Offset of the start of a partition in bytes (default 0) + size: Limits the size of the partition, in bytes (default 0). This is + important when creating filesystems, otherwise tools often + corrupt areas beyond the desired limits of the partition. + Returns: + The path to a created loopback device node + """ + + try: + base_args = ['losetup', '--show', '-f', '-P', '-o', str(offset)] + if size and offset: + cmd = base_args + ['--sizelimit', str(size), mount_path] + else: + cmd = base_args + [mount_path] + loop_device = subprocess.check_output(cmd).rstrip() + # Allow the system time to see the new device On some systems, mounts + # created on the loopdev too soon after creating the loopback device + # may be unreliable, even though the -P option (--partscan) is passed + # to losetup + time.sleep(1) + except subprocess.CalledProcessError: + PartitioningError('Error creating loopback') + try: + yield loop_device + finally: + subprocess.check_call(['losetup', '-d', loop_device]) + +def get_pt_type(location): + """Read the partition table type from location (device or image)""" + + pt_type = __get_blkid_output('PTTYPE', location).lower() + return 'none' if pt_type == '' else pt_type + +def __get_blkid_output(field, location): + return subprocess.check_output(['blkid', '-p', '-o', 'value', + '-s', field, location]).rstrip() + +def get_partition_uuid(location, part_num, pt_type=None): + """ + Read the partition UUID (MBR or GPT) for location (device or image) + + Args: + location: Path to device or image + part_num: Integer number of the partition + pt_type: The partition table format (MBR or GPT) + """ + + if not pt_type: + pt_type = get_pt_type(location) + if pt_type == 'gpt': + return get_partition_gpt_guid(location, part_num) + elif pt_type == 'mbr': + return get_partition_mbr_uuid(location, part_num) + +def get_partition_mbr_uuid(location, part_num): + """ + Get a partition's UUID in a device using MBR partition table + + In Linux, MBR partition UUIDs are comprised of the NT disk signature, + followed by '-' and a two digit, zero-padded partition number. This is + necessary since the MBR does not provide per-partition GUIDs as GPT + partition tables do. This can be passed to the kernel with + "root=PARTUUID=$UUID" to identify a partition containing a root + filesystem. + + Args: + partition: A partition object + location: Location of the storage device containing the partition - + an image or device node + Returns: + A UUID referring to an MBR partition, e.g. '97478dab-02' + """ + + pt_uuid = __get_blkid_output('PTUUID', location).upper() + return '%s-%02d' % (pt_uuid, part_num) + +def get_partition_gpt_guid(location, part_num): + """ + Get a partition's GUID from a GPT partition table + + This is read directly from the partition table, since current fdisk does + not support reading GPT partition GUIDs. It does not require special tools + (gfdisk). This is the GUID which identifies the partition, created with + the partition table, as opposed to the filesystem UUID, created with the + filesystem. It is particularly useful for specifying the partition which + the Linux kernel can use on boot to find the root filesystem, e.g. when + using the kernel command line "root=PARTUUID=$UUID" + + Args: + part_num: The partition number + location: Location of the storage device containing the partition - + an image path or device node + Returns: + A GUID string, e.g. 'B342D1AB-4B65-4601-97DC-D6DF3FE2E95E' + """ + + sector_size = get_sector_size(location) + # The partition GUID is located two sectors (protective MBR + GPT header) + # plus 128 bytes for each partition entry in the table, plus 16 bytes for + # the location of the partition's GUID + guid_offset = (2 * sector_size) + (128 * (part_num - 1)) + 16 + + with open(location, 'rb') as f: + f.seek(guid_offset) + raw_uuid_bin = f.read(16) + + a = '' + for c in raw_uuid_bin: + a += '%02X' % ord(c) + + return ('%s%s%s%s-%s%s-%s%s-%s-%s' % + (a[6:8], a[4:6], a[2:4], a[0:2], + a[10:12], a[8:10], + a[14:16], a[12:14], + a[16:20], a[20:32])) diff --git a/extensions/rawdisk.write b/extensions/rawdisk.write index 49d0a1e8..830d06a5 100755 --- a/extensions/rawdisk.write +++ b/extensions/rawdisk.write @@ -17,7 +17,10 @@ '''A Morph deployment write extension for raw disk images.''' +import contextlib import os +import pyfdisk +import re import subprocess import sys import time @@ -44,54 +47,64 @@ class RawDiskWriteExtension(writeexts.WriteExtension): try: if not self.is_device(location): with self.created_disk_image(location): - self.format_btrfs(location) - self.create_system(temp_root, location) + self.create_baserock_system(temp_root, location) self.status(msg='Disk image has been created at %s' % location) else: - self.format_btrfs(location) - self.create_system(temp_root, location) + self.create_baserock_system(temp_root, location) self.status(msg='System deployed to %s' % location) except Exception: self.status(msg='Failure to deploy system to %s' % location) raise - def upgrade_local_system(self, raw_disk, temp_root): + def upgrade_local_system(self, location, temp_root): self.complete_fstab_for_btrfs_layout(temp_root) - with self.mount(raw_disk) as mp: - version_label = self.get_version_label(mp) - self.status(msg='Updating image to a new version with label %s' % - version_label) + try: + with self.mount(location) as mp: + self.do_upgrade(mp, temp_root) + return + except subprocess.CalledProcessError: + pass - version_root = os.path.join(mp, 'systems', version_label) - os.mkdir(version_root) + # At this point, we have failed to mount a raw image, so instead + # search for a Baserock root filesystem in the device's partitions + with self.find_and_mount_rootfs(location) as mp: + self.do_upgrade(mp, temp_root) - old_orig = os.path.join(mp, 'systems', 'default', 'orig') - new_orig = os.path.join(version_root, 'orig') - subprocess.check_call( - ['btrfs', 'subvolume', 'snapshot', old_orig, new_orig]) + def do_upgrade(self, mp, temp_root): + version_label = self.get_version_label(mp) + self.status(msg='Updating image to a new version with label %s' % + version_label) - subprocess.check_call( - ['rsync', '-a', '--checksum', '--numeric-ids', '--delete', - temp_root + os.path.sep, new_orig]) + version_root = os.path.join(mp, 'systems', version_label) + os.mkdir(version_root) - self.create_run(version_root) + old_orig = os.path.join(mp, 'systems', 'default', 'orig') + new_orig = os.path.join(version_root, 'orig') + subprocess.check_call( + ['btrfs', 'subvolume', 'snapshot', old_orig, new_orig]) - default_path = os.path.join(mp, 'systems', 'default') - if os.path.exists(default_path): - os.remove(default_path) - else: - # we are upgrading and old system that does - # not have an updated extlinux config file - if self.bootloader_config_is_wanted(): - self.generate_bootloader_config(mp) - self.install_bootloader(mp) - os.symlink(version_label, default_path) + subprocess.check_call( + ['rsync', '-a', '--checksum', '--numeric-ids', '--delete', + temp_root + os.path.sep, new_orig]) + self.create_run(version_root) + + default_path = os.path.join(mp, 'systems', 'default') + if os.path.exists(default_path): + os.remove(default_path) + else: + # we are upgrading and old system that does + # not have an updated extlinux config file if self.bootloader_config_is_wanted(): - self.install_kernel(version_root, temp_root) + self.generate_bootloader_config(mp) + self.install_bootloader(mp) + os.symlink(version_label, default_path) + + if self.bootloader_config_is_wanted(): + self.install_kernel(version_root, temp_root) def get_version_label(self, mp): version_label = os.environ.get('VERSION_LABEL') diff --git a/extensions/rawdisk.write.help b/extensions/rawdisk.write.help index 52ed73fb..72e285b7 100644 --- a/extensions/rawdisk.write.help +++ b/extensions/rawdisk.write.help @@ -78,5 +78,50 @@ help: | (See https://www.kernel.org/doc/Documentation/kernel-parameters.txt) + * PARTITION_FILE=path: path to a YAML partition specification to use for + producing partitioned disks or devices. The default specification is + 'partitioning/default' in definitions, which specifies a device with a + single partition. This may serve as an example of the format of this + file, or check the pyfdisk.py documentation in pyfdisk.README. + + In addition to the features available in pyfdisk.py, using this + extension, a list of 'raw_files' items can be added at the partition + level, or the top level of the partition specification. This specifies + files to be written directly to the target device or image using `dd` + + start_offset: 2048 + partition_table_format: mbr + partitions: + - description: boot + filesystem: none + ... + raw_files: + - file: boot/uboot.img + raw_files: + - file: boot/uboot-env.img + offset_bytes: 512 + - file: boot/preloader.bin + skip_bytes: 128 + count_bytes: 16K + + * Files are written consecutively in the order they are listed, and + sourced from the unpacked root filesystem image + * Files can be given a specific offset with 'offset_sectors' or + 'offset_bytes' + * With 'raw_files' specified inside a partition, 'offset_sectors' or + 'offset_bytes' is counted from the start of that partition, + otherwise from the start of the device. + * For files without an explicit offset, the next file is written + starting with the next free byte following the previous file + * Providing an offset is optional for all files + * Specifying 'skip_bytes' will set the 'skip=' option for dd, skipping + a number of bytes at the start of the input file + * Specifying 'count_bytes' sets the 'count=' option for dd + * For properties which take an input in bytes, a human-readable + multiplier can be used, e.g. K, M, G (integer multiplicands only) + + * USE_PARTITIONING=boolean (default: no) Use this flag to enable + partitioning functions. + (See `morph help deploy` for details of how to pass parameters to write extensions) diff --git a/extensions/ssh-rsync.check b/extensions/ssh-rsync.check index fc9bf62d..436aaae0 100755 --- a/extensions/ssh-rsync.check +++ b/extensions/ssh-rsync.check @@ -17,8 +17,6 @@ import os -import json -import logging import writeexts @@ -42,8 +40,6 @@ class SshRsyncCheckExtension(writeexts.WriteExtension): location = args[0] self.check_ssh_connectivity(location) - - self.check_version_label(location, os.environ['VERSION_LABEL']) self.check_is_baserock_system(location) # The new system that being deployed as an upgrade must contain @@ -66,19 +62,5 @@ class SshRsyncCheckExtension(writeexts.WriteExtension): raise writeexts.ExtensionError( "%s does not have %s" % (location, command)) - def check_version_label(self, location, version_label): - args = ['system-version-manager', 'list', '--json'] - - try: - output = writeexts.ssh_runcmd(location, args) - except writeexts.ExtensionError: - msg = ("Couldn't get system list from system-version-manager, " - "skipping version label check") - logging.exception(msg) - return - - if version_label in json.loads(output): - raise writeexts.ExtensionError( - "There is already a system called `%s'" % version_label) SshRsyncCheckExtension().run() diff --git a/extensions/trove.configure b/extensions/trove.configure index f823762c..c1cd8a65 100755 --- a/extensions/trove.configure +++ b/extensions/trove.configure @@ -107,12 +107,14 @@ ROOT="$1" TROVE_DATA="$ROOT/etc/trove" mkdir -p "$TROVE_DATA" +# Install mandatory files install -m 0600 "$LORRY_SSH_KEY" "$TROVE_DATA/lorry.key" install -m 0644 "${LORRY_SSH_KEY}.pub" "$TROVE_DATA/lorry.key.pub" install -m 0644 "$TROVE_ADMIN_SSH_PUBKEY" "$TROVE_DATA/admin.key.pub" install -m 0644 "$WORKER_SSH_PUBKEY" "$TROVE_DATA/worker.key.pub" +# Create base configuration file python <<'EOF' >"$TROVE_DATA/trove.conf" import os, sys, yaml @@ -141,8 +143,30 @@ for key in optional_keys: yaml.dump(trove_configuration, sys.stdout, default_flow_style=False) EOF +# Add backups configuration if [ -n "$TROVE_BACKUP_KEYS" ]; then mkdir -p "$TROVE_DATA/backup-keys" cp -- $TROVE_BACKUP_KEYS "$TROVE_DATA/backup-keys" echo "TROVE_BACKUP_KEYS: /etc/trove/backup-keys/*" >> "$TROVE_DATA/trove.conf" fi + +# Add SSL configuration +if test "x$TROVE_SSL_PEMFILE" != "x"; then + if test -f "$TROVE_SSL_PEMFILE"; then + install -m 0600 "$TROVE_SSL_PEMFILE" "$TROVE_DATA/trove-ssl-pemfile.pem" + echo "TROVE_SSL_PEMFILE: /etc/trove/trove-ssl-pemfile.pem" >> "$TROVE_DATA/trove.conf" + else + echo "ERROR: $TROVE_SSL_PEMFILE (TROVE_SSL_PEMFILE) doesn't exist." + exit 1 + fi +fi + +if test "x$TROVE_SSL_CA_FILE" != "x"; then + if test -f "$TROVE_SSL_CA_FILE"; then + install -m 0644 "$TROVE_SSL_CA_FILE" "$TROVE_DATA/trove-ssl-ca-file.pem" + echo "TROVE_SSL_CA_FILE: /etc/trove/trove-ssl-ca-file.pem" >> "$TROVE_DATA/trove.conf" + else + echo "ERROR: $TROVE_SSL_CA_FILE (TROVE_SSL_CA_FILE) doesn't exist." + exit 1 + fi +fi diff --git a/extensions/trove.configure.help b/extensions/trove.configure.help index c96bdf74..2669f693 100644 --- a/extensions/trove.configure.help +++ b/extensions/trove.configure.help @@ -15,6 +15,8 @@ help: | * `LORRY_CONTROLLER_MINIONS` (optional, defaults to 4) * `TROVE_BACKUP_KEYS` - a space-separated list of paths to SSH keys. (optional) + * `TROVE_SSL_PEMFILE` (optional) + * `TROVE_SSL_CA_FILE` (optional) The variables are described in more detail below. @@ -105,6 +107,12 @@ help: | If this is set, the Trove will have a backup user that can be accessed with rsync using the SSH keys provided. + * `TROVE_SSL_PEMFILE` -- SSL certificate to use in lighttpd SSL + configuration. + + * `TROVE_SSL_CA_FILE` -- CA chain certificate to use in lighttpd SSL + configuration. + Example ------- diff --git a/extensions/writeexts.py b/extensions/writeexts.py index 000c8270..f356a34a 100644 --- a/extensions/writeexts.py +++ b/extensions/writeexts.py @@ -18,6 +18,8 @@ import errno import fcntl import logging import os +import partitioning +import pyfdisk import re import select import shutil @@ -228,7 +230,8 @@ class Extension(object): sys.stdout.write('ERROR: %s\n' % e) sys.exit(1) - def status(self, **kwargs): + @staticmethod + def status(**kwargs): '''Provide status output. The ``msg`` keyword argument is the actual message, @@ -264,12 +267,18 @@ class WriteExtension(Extension): 'Error: Btrfs is required for this deployment, but was not ' 'detected in the kernel of the machine that is running Morph.') - def create_local_system(self, temp_root, raw_disk): + def create_local_system(self, temp_root, location): '''Create a raw system image locally.''' - with self.created_disk_image(raw_disk): - self.format_btrfs(raw_disk) - self.create_system(temp_root, raw_disk) + with self.created_disk_image(location): + self.create_baserock_system(temp_root, location) + + def create_baserock_system(self, temp_root, location): + if self.get_environment_boolean('USE_PARTITIONING', 'no'): + self.create_partitioned_system(temp_root, location) + else: + self.format_btrfs(location) + self.create_system(temp_root, location) @contextlib.contextmanager def created_disk_image(self, location): @@ -295,7 +304,7 @@ class WriteExtension(Extension): try: self.create_btrfs_system_layout( temp_root, mp, version_label='factory', - disk_uuid=self.get_uuid(raw_disk)) + rootfs_uuid=self.get_uuid(raw_disk)) except BaseException as e: sys.stderr.write('Error creating Btrfs system layout') raise @@ -384,11 +393,20 @@ class WriteExtension(Extension): else: raise - def get_uuid(self, location): - '''Get the UUID of a block device's file system.''' - # Requires util-linux blkid; busybox one ignores options and - # lies by exiting successfully. - return subprocess.check_output(['blkid', '-s', 'UUID', '-o', 'value', + def get_uuid(self, location, offset=0): + '''Get the filesystem UUID of a block device's file system. + + Requires util-linux blkid; the busybox version ignores options and + lies by exiting successfully. + + Args: + location: Path of device or image to inspect + offset: A byte offset - which should point to the start of a + partition containing a filesystem + ''' + + return subprocess.check_output(['blkid', '-s', 'UUID', '-o', + 'value', '-p', '-O', str(offset), location]).strip() @contextlib.contextmanager @@ -413,7 +431,7 @@ class WriteExtension(Extension): os.rmdir(mount_point) def create_btrfs_system_layout(self, temp_root, mountpoint, version_label, - disk_uuid): + rootfs_uuid, device=None): '''Separate base OS versions from state using subvolumes. ''' @@ -424,11 +442,9 @@ class WriteExtension(Extension): os.makedirs(version_root) os.makedirs(state_root) - self.create_orig(version_root, temp_root) - system_dir = os.path.join(version_root, 'orig') - + system_dir = self.create_orig(version_root, temp_root) state_dirs = self.complete_fstab_for_btrfs_layout(system_dir, - disk_uuid) + rootfs_uuid, device) for state_dir in state_dirs: self.create_state_subvolume(system_dir, mountpoint, state_dir) @@ -444,12 +460,53 @@ class WriteExtension(Extension): self.install_dtb(version_root, temp_root) self.install_syslinux_menu(mountpoint, version_root) if initramfs is not None: + # Using initramfs - can boot a rootfs with a filesystem UUID self.install_initramfs(initramfs, version_root) - self.generate_bootloader_config(mountpoint, disk_uuid) + self.generate_bootloader_config(mountpoint, + rootfs_uuid=rootfs_uuid) else: - self.generate_bootloader_config(mountpoint) + if device: + # A partitioned disk or image - boot with partition UUID + root_part = device.get_partition_by_mountpoint('/') + root_guid = device.get_partition_uuid(root_part) + self.generate_bootloader_config(mountpoint, + root_guid=root_guid) + if self.get_bootloader_install() == 'extlinux': + self.install_syslinux_blob(device, system_dir) + else: + # Unpartitioned and no initramfs - cannot boot with a UUID + self.generate_bootloader_config(mountpoint) self.install_bootloader(mountpoint) + if device: + self.create_partition_mountpoints(device, system_dir) + + def create_partition_mountpoints(self, device, system_dir): + '''Create (or empty) partition mountpoints in the root filesystem + + Delete contents of partition mountpoints in the rootfs to leave an + empty mount drectory (files are copied to the actual partition in + create_partitioned_system()), or create an empty mount directory in + the rootfs if the mount path doesn't exist. + + Args: + device: A pyfdisk.py Device object describing the partitioning + system_dir: A path to the Baserock rootfs to be modified + ''' + + for part in device.partitionlist: + if hasattr(part, 'mountpoint') and part.mountpoint != '/': + part_mount_dir = os.path.join(system_dir, + re.sub('^/', '', part.mountpoint)) + if os.path.exists(part_mount_dir): + self.status(msg='Deleting files in mountpoint ' + 'for %s partition' % part.mountpoint) + self.empty_dir(part_mount_dir) + else: + self.status(msg='Creating empty mount directory ' + 'for %s partition' % part.mountpoint) + os.mkdir(part_mount_dir) + def create_orig(self, version_root, temp_root): '''Create the default "factory" system.''' @@ -460,6 +517,8 @@ class WriteExtension(Extension): self.status(msg='Copying files to orig subvolume') subprocess.check_call(['cp', '-a', temp_root + '/.', orig + '/.']) + return orig + def create_run(self, version_root): '''Create the 'run' snapshot.''' @@ -484,16 +543,41 @@ class WriteExtension(Extension): os.chmod(subvolume, 0o755) existing_state_dir = os.path.join(system_dir, state_subdir) + self.move_dir_contents(existing_state_dir, subvolume) + + def move_dir_contents(self, source_dir, target_dir): + '''Move all files source_dir, to target_dir''' + + n = self.__cmd_files_in_dir(['mv'], source_dir, target_dir) + if n: + self.status(msg='Moved %d files to %s' % (n, target_dir)) + + def copy_dir_contents(self, source_dir, target_dir): + '''Copy all files source_dir, to target_dir''' + + n = self.__cmd_files_in_dir(['cp', '-a', '-r'], source_dir, target_dir) + if n: + self.status(msg='Copied %d files to %s' % (n, target_dir)) + + def empty_dir(self, directory): + '''Empty the contents of a directory, but not the directory itself''' + + n = self.__cmd_files_in_dir(['rm', '-rf'], directory) + if n: + self.status(msg='Deleted %d files in %s' % (n, directory)) + + def __cmd_files_in_dir(self, cmd, source_dir, target_dir=None): files = [] - if os.path.exists(existing_state_dir): - files = os.listdir(existing_state_dir) - if len(files) > 0: - self.status(msg='Moving existing data to %s subvolume' % subvolume) + if os.path.exists(source_dir): + files = os.listdir(source_dir) for filename in files: - filepath = os.path.join(existing_state_dir, filename) - subprocess.check_call(['mv', filepath, subvolume]) + filepath = os.path.join(source_dir, filename) + add_params = [filepath, target_dir] if target_dir else [filepath] + subprocess.check_call(cmd + add_params) + return len(files) - def complete_fstab_for_btrfs_layout(self, system_dir, rootfs_uuid=None): + def complete_fstab_for_btrfs_layout(self, system_dir, + rootfs_uuid=None, device=None): '''Fill in /etc/fstab entries for the default Btrfs disk layout. In the future we should move this code out of the write extension and @@ -521,9 +605,34 @@ class WriteExtension(Extension): 'UUID=%s' % rootfs_uuid) fstab.add_line('%s / btrfs defaults,rw,noatime 0 1' % root_device) + # Add fstab entries for partitions + part_mountpoints = set() + if device: + mount_parts = set(p for p in device.partitionlist + if hasattr(p, 'mountpoint') and p.mountpoint != '/') + for part in mount_parts: + if part.mountpoint not in existing_mounts: + # Get filesystem UUID + part_uuid = self.get_uuid(device.location, + part.extent.start * + device.sector_size) + self.status(msg='Adding fstab entry for %s ' + 'partition' % part.mountpoint) + fstab.add_line('UUID=%s %s %s defaults,rw,noatime ' + '0 2' % (part_uuid, part.mountpoint, + part.filesystem)) + part_mountpoints.add(part.mountpoint) + else: + self.status(msg='WARNING: an entry already exists in ' + 'fstab for %s partition, skipping' % + part.mountpoint) + + # Add entries for state dirs + all_mountpoints = set(existing_mounts.keys()) | part_mountpoints state_dirs_to_create = set() for state_dir in shared_state_dirs: - if '/' + state_dir not in existing_mounts: + mp = '/' + state_dir + if mp not in all_mountpoints: state_dirs_to_create.add(state_dir) state_subvol = os.path.join('/state', state_dir) fstab.add_line( @@ -601,7 +710,7 @@ class WriteExtension(Extension): def get_root_device(self): return os.environ.get('ROOT_DEVICE', '/dev/sda') - def generate_bootloader_config(self, real_root, disk_uuid=None): + def generate_bootloader_config(self, *args, **kwargs): '''Install extlinux on the newly created disk image.''' config_function_dict = { 'extlinux': self.generate_extlinux_config, @@ -609,13 +718,22 @@ class WriteExtension(Extension): config_type = self.get_bootloader_config_format() if config_type in config_function_dict: - config_function_dict[config_type](real_root, disk_uuid) + config_function_dict[config_type](*args, **kwargs) else: raise ExtensionError( 'Invalid BOOTLOADER_CONFIG_FORMAT %s' % config_type) - def generate_extlinux_config(self, real_root, disk_uuid=None): - '''Install extlinux on the newly created disk image.''' + def generate_extlinux_config(self, real_root, + rootfs_uuid=None, root_guid=None): + '''Generate the extlinux configuration file + + Args: + real_root: Path to the mounted top level of the root filesystem + rootfs_uuid: Specify a filesystem UUID which can be loaded using + an initramfs aware of filesystems + root_guid: Specify a partition GUID, can be used without an + initramfs + ''' self.status(msg='Creating extlinux.conf') config = os.path.join(real_root, 'extlinux.conf') @@ -631,29 +749,40 @@ class WriteExtension(Extension): 'rootfstype=btrfs ' # required when using initramfs, also boots # faster when specified without initramfs 'rootflags=subvol=systems/default/run ') # boot runtime subvol - kernel_args += 'root=%s ' % (self.get_root_device() - if disk_uuid is None - else 'UUID=%s' % disk_uuid) + + # See init/do_mounts.c:182 in the kernel source, in the comment above + # function name_to_dev_t(), for an explanation of the available + # options for the kernel parameter 'root', particularly when using + # GUID/UUIDs + if rootfs_uuid: + root_device = 'UUID=%s' % rootfs_uuid + elif root_guid: + root_device = 'PARTUUID=%s' % root_guid + else: + # Fall back to the root partition named in the cluster + root_device = self.get_root_device() + kernel_args += 'root=%s ' % root_device + kernel_args += self.get_extra_kernel_args() with open(config, 'w') as f: f.write('default linux\n') f.write('timeout 1\n') f.write('label linux\n') f.write('kernel /systems/default/kernel\n') - if disk_uuid is not None: + if rootfs_uuid is not None: f.write('initrd /systems/default/initramfs\n') if self.get_dtb_path() != '': f.write('devicetree /systems/default/dtb\n') f.write('append %s\n' % kernel_args) - def install_bootloader(self, real_root): + def install_bootloader(self, *args, **kwargs): install_function_dict = { 'extlinux': self.install_bootloader_extlinux, } install_type = self.get_bootloader_install() if install_type in install_function_dict: - install_function_dict[install_type](real_root) + install_function_dict[install_type](*args, **kwargs) elif install_type != 'none': raise ExtensionError( 'Invalid BOOTLOADER_INSTALL %s' % install_type) @@ -666,6 +795,33 @@ class WriteExtension(Extension): subprocess.check_call(['sync']) time.sleep(2) + def install_syslinux_blob(self, device, orig_root): + '''Install Syslinux MBR blob + + This is the first stage of boot (for partitioned images) on x86 + machines. It is not required where there is no partition table. The + syslinux bootloader is written to the MBR, and is capable of loading + extlinux. This only works when the partition is set as bootable (MBR), + or the legacy boot flag is set (GPT). The blob is built with extlinux, + and found in the rootfs''' + + pt_format = device.partition_table_format.lower() + if pt_format in ('gpb', 'mbr'): + blob = 'mbr.bin' + elif pt_format == 'gpt': + blob = 'gptmbr.bin' + blob_name = 'usr/share/syslinux/' + blob + self.status(msg='Installing syslinux %s blob' % pt_format.upper()) + blob_location = os.path.join(orig_root, blob_name) + if os.path.exists(blob_location): + subprocess.check_call(['dd', 'if=%s' % blob_location, + 'of=%s' % device.location, + 'bs=440', 'count=1', 'conv=notrunc']) + else: + raise ExtensionError('MBR blob not found. Is this the correct' + 'architecture? The MBR blob will only be built for x86' + 'systems. You may wish to configure BOOTLOADER_INSTALL') + def install_syslinux_menu(self, real_root, version_root): '''Make syslinux/extlinux menu binary available. @@ -712,13 +868,13 @@ class WriteExtension(Extension): return True - def get_environment_boolean(self, variable): + def get_environment_boolean(self, variable, default='no'): '''Parse a yes/no boolean passed through the environment.''' - value = os.environ.get(variable, 'no').lower() - if value in ['no', '0', 'false']: + value = os.environ.get(variable, default).lower() + if value in ('no', '0', 'false'): return False - elif value in ['yes', '1', 'true']: + elif value in ('yes', '1', 'true'): return True else: raise ExtensionError('Unexpected value for %s: %s' % @@ -744,3 +900,91 @@ class WriteExtension(Extension): if e.errno == errno.ENOENT: return False raise + + def create_partitioned_system(self, temp_root, location): + '''Create a Baserock system in a partitioned disk image or device''' + + part_spec = os.environ.get('PARTITION_FILE', 'partitioning/default') + + disk_size = self.get_disk_size() + if not disk_size: + raise writeexts.ExtensionError('DISK_SIZE is not defined') + + dev = partitioning.do_partitioning(location, disk_size, + temp_root, part_spec) + + for part in dev.partitionlist: + if not hasattr(part, 'mountpoint'): + continue + if part.mountpoint == '/': + # Re-format the rootfs, to include needed extra features + with pyfdisk.create_loopback(location, + part.extent.start * + dev.sector_size, part.size) as l: + self.mkfs_btrfs(l) + + self.status(msg='Mounting partition %d' % part.number) + offset = part.extent.start * dev.sector_size + with self.mount_partition(location, + offset, part.size) as part_mount_dir: + if part.mountpoint == '/': + # Install root filesystem + rfs_uuid = self.get_uuid(location, part.extent.start * + dev.sector_size) + self.create_btrfs_system_layout(temp_root, part_mount_dir, + 'factory', rfs_uuid, dev) + else: + # Copy files to partition from unpacked rootfs + src_dir = os.path.join(temp_root, + re.sub('^/', '', part.mountpoint)) + self.status(msg='Copying files to %s partition' % + part.mountpoint) + self.copy_dir_contents(src_dir, part_mount_dir) + + # Write raw files to disk with dd + partitioning.process_raw_files(dev, temp_root) + + @contextlib.contextmanager + def mount_partition(self, location, offset_bytes, size_bytes): + '''Mount a partition in a partitioned device or image''' + + with pyfdisk.create_loopback(location, offset=offset_bytes, + size=size_bytes) as loop: + with self.mount(loop) as mountpoint: + yield mountpoint + + @contextlib.contextmanager + def find_and_mount_rootfs(self, location): + ''' + Mount a Baserock rootfs inside a partitioned device or image + + This function searches a disk image or device, with unknown + partitioning scheme, for a Baserock rootfs. This is done by finding + offsets and sizes of partitions in the partition table, mounting each + partition, and checking whether a known path exists in the mount. + + Args: + location: the location of the disk image or device to search + Returns: + A path to the mount point of the mounted Baserock rootfs + ''' + + if pyfdisk.get_pt_type(location) == 'none': + with self.mount(location) as mountpoint: + yield mountpoint + + sector_size = pyfdisk.get_sector_size(location) + partn_sizes = pyfdisk.get_partition_sector_sizes(location) + for i, offset in enumerate(pyfdisk.get_partition_offsets(location)): + try: + with self.mount_partition(location, offset * sector_size, + partn_sizes[i] * sector_size) as mp: + path = os.path.join(mp, 'systems/default/orig/baserock') + if os.path.exists(path): + self.status(msg='Found a Baserock rootfs at ' + 'offset %d sectors/%d bytes' % + (offset, offset * sector_size)) + yield mp + except BaseException: + # Probably a partition without a filesystem, carry on + pass diff --git a/install-files/essential-files/usr/bin/brpaste b/install-files/essential-files/usr/bin/brpaste index 15f976b9..d2f9d867 100644 --- a/install-files/essential-files/usr/bin/brpaste +++ b/install-files/essential-files/usr/bin/brpaste @@ -1,6 +1,6 @@ -#!/usr/bin/python +#!/usr/bin/env python3 -import urllib2 +import urllib.request import os import json @@ -15,14 +15,14 @@ def run(*args): extensions = [None] for i, each in enumerate(content): - req = urllib2.Request(URL, each) - response = urllib2.urlopen(req) - the_page = response.read() + req = urllib.request.Request(URL, each.encode('utf-8')) + response = urllib.request.urlopen(req) + the_page = response.read().decode('utf-8') key = json.loads(the_page)['key'] url = "http://paste.baserock.org/%s" % key if extensions[i]: url += extensions[i] - print url + print(url) if __name__ == '__main__': import sys diff --git a/install-files/gnome/etc/pam.d/gdm-launch-environment b/install-files/gnome/etc/pam.d/gdm-launch-environment new file mode 100644 index 00000000..0e49df04 --- /dev/null +++ b/install-files/gnome/etc/pam.d/gdm-launch-environment @@ -0,0 +1,13 @@ +# Begin /etc/pam.d/gdm-launch-environment + +auth required pam_env.so +auth optional pam_permit.so + +account include system-auth + +password required pam_deny.so + +session optional pam_keyinit.so force revoke +session include system-auth + +# End /etc/pam.d/gdm-launch-environment diff --git a/install-files/gnome/etc/securetty b/install-files/gnome/etc/securetty new file mode 100644 index 00000000..e3dfb6c4 --- /dev/null +++ b/install-files/gnome/etc/securetty @@ -0,0 +1,8 @@ +tty1 +#tty2 +#tty3 +#tty4 +#tty5 +#tty6 +#tty7 +#tty8 diff --git a/install-files/gnome/etc/ssh/sshd_config b/install-files/gnome/etc/ssh/sshd_config new file mode 100644 index 00000000..aaab3cca --- /dev/null +++ b/install-files/gnome/etc/ssh/sshd_config @@ -0,0 +1,135 @@ +# $OpenBSD: sshd_config,v 1.93 2014/01/10 05:59:19 djm Exp $ + +# This is the sshd server system-wide configuration file. See +# sshd_config(5) for more information. + +# This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin + +# The strategy used for options in the default sshd_config shipped with +# OpenSSH is to specify options with their default value where +# possible, but leave them commented. Uncommented options override the +# default value. + +#Port 22 +#AddressFamily any +#ListenAddress 0.0.0.0 +#ListenAddress :: + +# The default requires explicit activation of protocol 1 +#Protocol 2 + +# HostKey for protocol version 1 +#HostKey /etc/ssh/ssh_host_key +# HostKeys for protocol version 2 +#HostKey /etc/ssh/ssh_host_rsa_key +#HostKey /etc/ssh/ssh_host_dsa_key +#HostKey /etc/ssh/ssh_host_ecdsa_key +#HostKey /etc/ssh/ssh_host_ed25519_key + +# Lifetime and size of ephemeral version 1 server key +#KeyRegenerationInterval 1h +#ServerKeyBits 1024 + +# Ciphers and keying +#RekeyLimit default none + +# Logging +# obsoletes QuietMode and FascistLogging +#SyslogFacility AUTH +#LogLevel INFO + +# Authentication: + +#LoginGraceTime 2m +#PermitRootLogin yes +#StrictModes yes +#MaxAuthTries 6 +#MaxSessions 10 + +#RSAAuthentication yes +#PubkeyAuthentication yes + +# The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2 +# but this is overridden so installations will only check .ssh/authorized_keys +AuthorizedKeysFile .ssh/authorized_keys + +#AuthorizedPrincipalsFile none + +#AuthorizedKeysCommand none +#AuthorizedKeysCommandUser nobody + +# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts +#RhostsRSAAuthentication no +# similar for protocol version 2 +#HostbasedAuthentication no +# Change to yes if you don't trust ~/.ssh/known_hosts for +# RhostsRSAAuthentication and HostbasedAuthentication +#IgnoreUserKnownHosts no +# Don't read the user's ~/.rhosts and ~/.shosts files +#IgnoreRhosts yes + +# To disable tunneled clear text passwords, change to no here! +#PasswordAuthentication yes +#PermitEmptyPasswords no + +# Change to no to disable s/key passwords +#ChallengeResponseAuthentication yes + +# Kerberos options +#KerberosAuthentication no +#KerberosOrLocalPasswd yes +#KerberosTicketCleanup yes +#KerberosGetAFSToken no + +# GSSAPI options +#GSSAPIAuthentication no +#GSSAPICleanupCredentials yes + +# Set this to 'yes' to enable PAM authentication, account processing, +# and session processing. If this is enabled, PAM authentication will +# be allowed through the ChallengeResponseAuthentication and +# PasswordAuthentication. Depending on your PAM configuration, +# PAM authentication via ChallengeResponseAuthentication may bypass +# the setting of "PermitRootLogin without-password". +# If you just want the PAM account and session checks to run without +# PAM authentication, then enable this but set PasswordAuthentication +# and ChallengeResponseAuthentication to 'no'. +UsePAM yes + +#AllowAgentForwarding yes +#AllowTcpForwarding yes +#GatewayPorts no +#X11Forwarding no +#X11DisplayOffset 10 +#X11UseLocalhost yes +#PermitTTY yes +#PrintMotd yes +#PrintLastLog yes +#TCPKeepAlive yes +#UseLogin no +UsePrivilegeSeparation sandbox # Default for new installations. +PermitUserEnvironment yes +#Compression delayed +#ClientAliveInterval 0 +#ClientAliveCountMax 3 +#UseDNS yes +#PidFile /var/run/sshd.pid +#MaxStartups 10:30:100 +#PermitTunnel no +#ChrootDirectory none +#VersionAddendum none + +# no default banner path +#Banner none + +# override default of no subsystems +Subsystem sftp /usr/lib/openssh/sftp-server + +# Example of overriding settings on a per-user basis +#Match User anoncvs +# X11Forwarding no +# AllowTcpForwarding no +# PermitTTY no +# ForceCommand cvs server + +AcceptEnv LANG LC_* diff --git a/install-files/gnome/manifest b/install-files/gnome/manifest new file mode 100644 index 00000000..79569060 --- /dev/null +++ b/install-files/gnome/manifest @@ -0,0 +1,4 @@ +0100644 0 0 /etc/securetty +overwrite 0100644 0 0 /etc/ssh/sshd_config +overwrite 0100644 0 0 /etc/pam.d/gdm-launch-environment +0100644 0 0 /usr/share/polkit-1/rules.d/geoclue-2.0.rules diff --git a/install-files/gnome/usr/share/polkit-1/rules.d/geoclue-2.0.rules b/install-files/gnome/usr/share/polkit-1/rules.d/geoclue-2.0.rules new file mode 100644 index 00000000..aeb42345 --- /dev/null +++ b/install-files/gnome/usr/share/polkit-1/rules.d/geoclue-2.0.rules @@ -0,0 +1,7 @@ +polkit.addRule(function(action, subject) { + if ((action.id == "org.freedesktop.ModemManager1.Device.Control" || + action.id == "org.freedesktop.ModemManager1.Location") && + subject.user == "geoclue") { + return polkit.Result.YES; + } +}); diff --git a/migrations/006-specify-build-system.py b/migrations/006-specify-build-system.py index f033b790..b66736c6 100755 --- a/migrations/006-specify-build-system.py +++ b/migrations/006-specify-build-system.py @@ -59,6 +59,7 @@ import yaml import logging import os import sys +import warnings import migrations @@ -75,6 +76,8 @@ REPO_ALIASES = { GIT_CACHE_SERVER_URL = 'http://%s:8080/' % TROVE_HOST +FAIL_ON_REMOTE_CACHE_ERRORS = False + TO_VERSION = 6 @@ -239,11 +242,18 @@ def get_toplevel_file_list_from_repo(url, ref): headers={'Accept': 'application/json'}, timeout=9) logging.debug("Got response: %s" % response) - toplevel_tree = response.json()['tree'] + try: + response.raise_for_status() + toplevel_tree = response.json()['tree'] + except Exception as e: + raise RuntimeError( + "Unexpected response from server %s for repo %s: %s" % + (GIT_CACHE_SERVER_URL, url, e.message)) toplevel_filenames = toplevel_tree.keys() except requests.exceptions.ConnectionError as e: - raise RuntimeError("Unable to connect to cache server %s: %s" % - (GIT_CACHE_SERVER_URL, e.message)) + raise RuntimeError("Unable to connect to cache server %s while trying " + "to query file list of repo %s. Error was: %s" % + (GIT_CACHE_SERVER_URL, url, e.message)) return toplevel_filenames @@ -293,8 +303,22 @@ def ensure_buildsystem_defined_where_needed(contents, filename): chunk_git_url = get_repo_url(chunk_ref['repo']) chunk_git_ref = chunk_ref['ref'] - toplevel_file_list = get_toplevel_file_list_from_repo( - chunk_git_url, chunk_git_ref) + + try: + toplevel_file_list = get_toplevel_file_list_from_repo( + chunk_git_url, chunk_git_ref) + except Exception as e: + warnings.warn(str(e)) + message = ( + "Unable to look up one or more repos on remote Git " + "server %s. If you are using a Trove that is not %s, " + "please edit the TROVE_HOST constant in this script " + "and run it again." % (TROVE_HOST, TROVE_HOST)) + if FAIL_ON_REMOTE_CACHE_ERRORS: + raise RuntimeError(message) + else: + warnings.warn(message) + continue logging.debug( '%s: got file list %s', chunk_git_url, toplevel_file_list) @@ -304,6 +328,7 @@ def ensure_buildsystem_defined_where_needed(contents, filename): move_dict_entry_last(chunk_ref, 'build-depends') changed = True + return changed diff --git a/migrations/007-defaults-in-definitions.py b/migrations/007-defaults-in-definitions.py new file mode 100755 index 00000000..489baf9b --- /dev/null +++ b/migrations/007-defaults-in-definitions.py @@ -0,0 +1,67 @@ +#!/usr/bin/env python +# Copyright (C) 2015 Codethink Limited +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; version 2 of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program. If not, see <http://www.gnu.org/licenses/>. + + +'''Migration to Baserock Definitions format version 7. + +Definitions version 7 adds a file named DEFAULTS which sets the default +build commands and default split rules for the set of definitions in that +repo. + +''' + + +import os +import shutil +import sys +import warnings + +import migrations + + +TO_VERSION = 7 + + + +try: + if migrations.check_definitions_version(TO_VERSION - 1): + if os.path.exists('DEFAULTS'): + warnings.warn( + "DEFAULTS file already exists in these definitions.") + valid = False + else: + shutil.copy( + 'migrations/007-initial-defaults', + 'DEFAULTS') + valid = True + + if valid: + migrations.set_definitions_version(TO_VERSION) + sys.stdout.write("Migration completed successfully.\n") + sys.exit(0) + else: + sys.stderr.write( + "Migration failed due to one or more warnings.\n") + sys.exit(1) + else: + if not os.path.exists('DEFAULTS'): + warnings.warn( + "These definitions are marked as version 7 but there is no " + "DEFAULTS file.") + sys.stdout.write("Nothing to do.\n") + sys.exit(0) +except RuntimeError as e: + sys.stderr.write("Error: %s\n" % e.message) + sys.exit(1) diff --git a/migrations/007-initial-defaults b/migrations/007-initial-defaults new file mode 100644 index 00000000..ab034a0b --- /dev/null +++ b/migrations/007-initial-defaults @@ -0,0 +1,199 @@ +# Baserock definitions defaults +# ============================= +# +# The DEFAULTS file is treated specially by Baserock build tools. +# +# For more information, see: <http://wiki.baserock.org/definitions/current>. + + +# Predefined build commands +# ------------------------- +# +# Common patterns in build instructions can be defined here, which can save +# users from having to write lots of similar-looking chunk .morph files. +# +# There are pre- and post- variants for each set of commands. These exist so +# you can add more commands without having to copy the defaults. For example, +# to create an extra symlink after running `make install`, you can use +# post-install-commands. Since these exist as a way of extending the defaults, +# you cannot set default values for the pre- and post- commands. +# +# The set of environment variables available when these commands are executed +# is not formally specified right now, but you can assume PREFIX, DESTDIR and +# MORPH_ARCH are all set. +# +build-systems: + manual: + # The special, default 'no-op' build system. + configure-commands: [] + build-commands: [] + install-commands: [] + strip-commands: [] + + autotools: + # GNU Autoconf and GNU Automake, or anything which follow the same pattern. + # + # See also: https://github.com/cgwalters/build-api/blob/master/build-api.md + configure-commands: + - >- + export NOCONFIGURE=1; + if [ -e autogen ]; then ./autogen; + elif [ -e autogen.sh ]; then ./autogen.sh; + elif [ -e bootstrap ]; then ./bootstrap; + elif [ -e bootstrap.sh ]; then ./bootstrap.sh; + elif [ ! -e ./configure ]; then autoreconf -ivf; + fi + - ./configure --prefix="$PREFIX" + build-commands: + - make + install-commands: + - make DESTDIR="$DESTDIR" install + strip-commands: + # TODO: Make idempotent when files are hardlinks + # Strip all ELF binary files that are executable or named like a library. + # .so files for C, .cmxs for OCaml and .node for Node. + # + # The file name and permissions checks are done with the `find` command before + # the ELF header is checked with the shell command, because it is a lot cheaper + # to check the mode and file name first, because it is a metadata check, rather + # than a subprocess and a file read. + # + # `file` is not used, to keep the dependency requirements down. + - &generic-strip-command | + find "$DESTDIR" -type f \ + '(' -perm -111 -o -name '*.so*' -o -name '*.cmxs' -o -name '*.node' ')' \ + -exec sh -ec \ + 'read -n4 hdr <"$1" # check for elf header + if [ "$hdr" != "$(printf \\x7fELF)" ]; then + exit 0 + fi + debugfile="$DESTDIR$PREFIX/lib/debug/$(basename "$1")" + mkdir -p "$(dirname "$debugfile")" + objcopy --only-keep-debug "$1" "$debugfile" + chmod 644 "$debugfile" + strip --remove-section=.comment --remove-section=.note --strip-unneeded "$1" + objcopy --add-gnu-debuglink "$debugfile" "$1"' - {} ';' + + python-distutils: + # The Python distutils build systems. + configure-commands: [] + build-commands: + - python setup.py build + install-commands: + - python setup.py install --prefix "$PREFIX" --root "$DESTDIR" + strip-commands: + - *generic-strip-command + + cpan: + # The Perl ExtUtil::MakeMaker build system. This is called the 'cpan' build + # system for historical reasons. + # + # To install perl distributions into the correct location in our chroot + # we need to set PREFIX to <destdir>/<prefix> in the configure-commands. + # + # The mapping between PREFIX and the final installation + # directories is complex and depends upon the configuration of perl + # see, + # https://metacpan.org/pod/distribution/perl/INSTALL#Installation-Directories + # and ExtUtil::MakeMaker's documentation for more details. + configure-commands: + - perl Makefile.PL PREFIX=$DESTDIR$PREFIX + build-commands: + - make + install-commands: + - make install + strip-commands: + - *generic-strip-command + + module-build: + # The Module::Build build system + # + # See the comment in ExtUtilsMakeMakerBuildSystem to see why --prefix is + # set to $DESTDIR$PREFIX here (--prefix in Module::Build has the same + # meaning as PREFIX in ExtUtils::MakeMaker). + configure-commands: + - perl Build.PL --prefix "$DESTDIR$PREFIX" + build-commands: + - ./Build + install-commands: + - ./Build install + strip-commands: + - *generic-strip-command + + cmake: + # The CMake build system. + configure-commands: + - cmake -DCMAKE_INSTALL_PREFIX="$PREFIX" + build-commands: + - make + install-commands: + - make DESTDIR="$DESTDIR" install + strip-commands: + - *generic-strip-command + + qmake: + # The Qt build system. + configure-commands: + - qmake -makefile + build-commands: + - make + install-commands: + - make INSTALL_ROOT="$DESTDIR" install + strip-commands: + - *generic-strip-command + + +# Predefined artifact splitting rules +# ----------------------------------- +# +# Once a build has completed, you have some files that have been installed into +# $DESTDIR. The splitting rules control how many 'artifact' tarballs are +# generated as a result of the build, and which files from $DESTDIR end up in +# which 'artifact'. +# +# The default split rules are defined here. These can be overriden in +# individual chunk .morph files and stratum .morph files using the 'products' +# field. +# +split-rules: + chunk: + - artifact: -bins + include: + - (usr/)?s?bin/.* + - artifact: -libs + include: + - (usr/)?lib(32|64)?/lib[^/]*\.so(\.\d+)* + - (usr/)libexec/.* + - artifact: -devel + include: + - (usr/)?include/.* + - (usr/)?lib(32|64)?/lib.*\.a + - (usr/)?lib(32|64)?/lib.*\.la + - (usr/)?(lib(32|64)?|share)/pkgconfig/.*\.pc + - artifact: -doc + include: + - (usr/)?share/doc/.* + - (usr/)?share/man/.* + - (usr/)?share/info/.* + - artifact: -locale + include: + - (usr/)?share/locale/.* + - (usr/)?share/i18n/.* + - (usr/)?share/zoneinfo/.* + - artifact: -misc + include: + - .* + + stratum: + - artifact: -devel + include: + - .*-devel + - .*-debug + - .*-doc + - artifact: -runtime + include: + - .*-bins + - .*-libs + - .*-locale + - .*-misc + - .* diff --git a/partitioning/default b/partitioning/default new file mode 100644 index 00000000..5e34afbf --- /dev/null +++ b/partitioning/default @@ -0,0 +1,9 @@ +start_offset: 2048 +partition_table_format: mbr +partitions: +- description: rootfs + size: fill + fdisk_type: 0x83 + filesystem: btrfs + mountpoint: / + boot: yes diff --git a/partitioning/socfpga-devkit b/partitioning/socfpga-devkit new file mode 100644 index 00000000..4a982427 --- /dev/null +++ b/partitioning/socfpga-devkit @@ -0,0 +1,26 @@ +start_offset: 2048 +partition_table_format: mbr +partitions: +- description: pre-loader + filesystem: none + fdisk_type: 0xa2 + number: 3 + size: 1M + raw_files: + - file: boot/socfpga-preloader.img + - file: boot/u-boot.img +- description: boot + filesystem: vfat + mountpoint: /boot + fdisk_type: 0x0b + number: 1 + size: 100M +- description: root + filesystem: btrfs + mountpoint: / + fdisk_type: 0x83 + number: 2 + size: fill +raw_files: +- file: boot/socfpga-devkit-env.img + offset_bytes: 512 diff --git a/schemas/README.schemas b/schemas/README.schemas new file mode 100644 index 00000000..a7789187 --- /dev/null +++ b/schemas/README.schemas @@ -0,0 +1,137 @@ +Schemas for the Baserock definitions format +=========================================== + +The starting point for learning about the Baserock definitions format is the +wiki page at <http://wiki.baserock.org/definitions/>. + +The schemas/ directory in the Baserock reference definitions.git repository is +the canonical home for some schemas which describe the format in a +machine-readable way. + +There are two parts to 'Baserock definitions'. The 'Baserock data model' is an +abstract vocabulary for describing how to build, integrate and deploy software +components. The 'Baserock definitions YAML representation format' is a +serialisation format for the data model, which lets you write YAML files +describing how to build, integrate and deploy software components. + +If you want to make the YAML files easier to deal with, you only need +to care about the JSON-Schema schemas and anything that parses the YAML files. + +If you want to write a new tool to build, visualise, analyse or otherwise +process Baserock definitions in some way, you can ignore the syntax altogether, +use a pre-existing parser, and just think in terms of the data +model. + +If you want to change the data model, you still have quite a difficult job, +but at least it should be simple to write a translation layer on top of an +existing parser so that you can interpret all the existing Baserock reference +system definitions in terms of your new data model. + + +The Baserock definitions YAML representation format +--------------------------------------------------- + +YAML itself is a syntax for representating data as text. The YAML specification +is at <http://www.yaml.org/>. + +The data needs to be structured in a certain way for it to make sense as +Baserock build/integration/deployment instructions. We have used JSON-Schema +to describe the required layout of the data. + +The JSON-Schema standard is described at <http://json-schema.org/>. The +JSON-Schema language was designed for use with JSON, which is another syntax +for representing data as text, which happens to be a subset of YAML. We have +found so far that JSON-Schema works well with YAML, at least when using the +Python 'jsonschema' module. + +Definitions are represented by files with a '.morph' extension. There are four +different kinds: 'chunk', 'stratum', 'system', and 'cluster'. Each of these is +described with a different .json-schema file. It is possible to merge all these +into one file, and use the 'oneOf' field to say that any .morph file should +match exactly one of the layouts. The only issue with this approach is that +the Python 'jsonschema' model will give you totally useless errors if anything +is invalid (along the lines of "<dump of entire file> is not valid under any of +the given schemas"). So for now they are separate. + + +Tools for working with the Baserock YAML schemas +------------------------------------------------ + +You can use `scripts/yaml-jsonschema` to validate .morph files against the +schemas. For example: + + scripts/yaml-jsonschema schemas/cluster.json-schema clusters/*.morph + + +The Baserock data model +----------------------- + +The best way to represent information on disk may be a pretty inefficient way +to represent that data in a computer's memory. Likewise, the way a program +stores data internally may be totally impractical for people to edit directly. + +The file `baserock.owl` is an initial effort to describe the Baserock data +model independently of any syntax or representation. + +We use the W3C standard Web Ontology Language (OWL), combined with the much +simpler RDF Schema language. Together, this allows defining the vocabulary we +can use to define build, integration and deployment instructions. There are +various ways to represent OWL 'ontologies'; `baserock.owl` uses a +representation format named Turtle, which is designed to be convenient for +hand-editing. + +The current data model is very closely tied to the current syntax, but we are +looking to change this and make it much more generic. This will involve +removing the current 'Chunk', 'Stratum', 'System' and 'Cluster' classes, and +adding something like 'thing with build instructions' and 'thing that contains +other things' instead. Name suggestions are welcome :-) + +It's useful to consider existing OWL and RDF Schema vocabularies that are +related to the Baserock data model. In future we can link the Baserock +reference system definitions with related data published elsewhere on the Web. +Here is an incomplete list: + + - Description of a Project (DOAP): https://github.com/edumbill/doap + - Software Ontology: https://robertdavidstevens.wordpress.com/2014/06/19/the-software-ontology-swo/ + - Software Packet Data Exchange (SPDX): https://spdx.org/about-spdx/what-is-spdx + + +Tools for working with the Baserock data model schema +----------------------------------------------------- + +It's difficult to find to a short, relevant 'getting started' guide. The +website http://www.linkeddata.org/ has a lot of background that should be +useful. + +The `rapper` commandline tool, which comes as part of the 'raptor2' C library, +is helpful for converting from one syntax to another, and checking if +`baserock.owl` is valid Turtle syntax. The 'raptor2' homepage is +<http://www.librdf.org/>. + +To check the syntax of `baserock.owl` using `rapper`: + + rapper -i turtle schemas/baserock.owl + + +Omissions / TODO items +---------------------- + +- Device nodes: chunk .morph files can list a set of device nodes. In + `chunk.json-schema` this is recognised, but in `baserock.owl` it is missing. + +- 'Lorry' mirroring instructions. These contain information on where 'upstream' + source code is kept, which should be considered part of the data model. A + JSON schema may be better off in lorry.git or + baserock/local-config/lorries.git. + +- Metadata in built systems. This is currently not standardised at all. + + +Comments +-------- + +As far as I know, Baserock is the first project to treat build, integration and +deployment instructions as data rather than code. If you have questions about +the schemas, the definitions format, or the overall approach, and they aren't +answered here or in <http://wiki.baserock.org/definitions/>, then please ask on +the baserock-dev@baserock.org mailing list. diff --git a/schemas/baserock.owl b/schemas/baserock.owl new file mode 100644 index 00000000..d699940c --- /dev/null +++ b/schemas/baserock.owl @@ -0,0 +1,295 @@ +# Copyright (C) 2015 Codethink Limited +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; version 2 of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program. If not, see <http://www.gnu.org/licenses/>. + + +# This schema describes the Baserock data model. It describes how the data +# can be represented in computer memory, it doesn't specify anything about +# how it should be stored on disk or transferred. +# +# Please see README.schemas, and http://wiki.baserock.org/definitions/current/ +# for more information. +# +# This is not a brilliant schema, in Linked Data terms, because it's using +# Baserock-specific terminology and a rigid layout, instead of being a generic +# vocabulary for describing how to assemble software. However, it maps closely +# to the format that the existing Baserock reference system definitions use. +# We hope to produce a simpler and more flexible 2.x version of this schema in +# future. + + +# Partial OWL and RDF Schema glossary: +# +# domain: the set of objects that a can have a property. +# range: the set of possible values for a property. +# +# ObjectProperty: +# a property whose value must be another resource. +# DatatypeProperty: +# a property whose value is one of the datatype defined by XML Schema ("xsd") +# FunctionalProperty: +# a property which can only have one value per resource +# InverseFunctionalProperty: +# a property which can only have one resource per value + + +# Metadata + +@prefix : <http://baserock.org/definitions/example-schema#> . +@prefix owl: <http://www.w3.org/2002/07/owl#> . +@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . +@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . +@prefix xsd: <http://www.w3.org/2001/XMLSchema#> . +@prefix dc: <http://purl.org/dc/elements/1.1/> . + +: a owl:Ontology ; + dc:title "Schema for Baserock data model" ; + dc:creator "The Baserock Project" ; + # Versioned according to Semantic Versioning http://www.semver.org/ + owl:versionInfo "0.9.0" . + + +## Entities + +# Source definitions + +:Morphology a owl:Class ; + rdfs:comment "A definition file." . + +:Cluster a owl:Class ; + rdfs:subClassOf :Morphology ; + rdfs:comment "Instructions for deploying one or systems." ; + owl:disjointWith :System, :Stratum, :Chunk . + +:System a owl:Class ; + rdfs:subClassOf :Morphology ; + rdfs:comment "A collection of strata in a form that can be executed." ; + owl:disjointWith :Cluster, :Stratum, :Chunk . + +:Stratum a owl:Class ; + rdfs:subClassOf :Morphology ; + rdfs:comment "A set of related chunks." ; + owl:disjointWith :Cluster, :System, :Chunk . + +:Chunk a owl:Class ; + rdfs:subClassOf :Morphology ; + rdfs:comment "An individual component, that can be built from a Git repository." ; + owl:disjointWith :Cluster, :System, :Stratum . + +# Container contents + +:SystemDeployment a owl:Class ; + rdfs:comment "Information for deploying one system of a cluster." . + +:ChunkReference a owl:Class ; + rdfs:comment "An instance of a chunk within a stratum." . + +# Products (for artifact split rules). + +:Artifact a owl:Class ; + rdfs:comment "One part of the result of building a morphology. The output of a build is split according to patterns, so there are multiple artifacts produced for a given source." . + +:StratumArtifact a owl:Class ; + rdfs:subClassOf :Artifact ; + rdfs:comment "Part of the result of building a stratum." ; + owl:disjointWith :ChunkArtifact. + +:ChunkArtifact a owl:Class ; + rdfs:subClassOf :Artifact ; + rdfs:comment "Part of the result of building a chunk." ; + owl:disjointWith :StratumArtifact. + + +## Shared properties + +# 'name' becomes part of the URL when we import definition .morph files as RDF, +# so it doesn't need a property. + +# Use dc:description for 'description', see: +# http://dublincore.org/documents/2012/06/14/dcmi-terms/?v=terms#terms-description + + +## Cluster-specific properties + +:containsSystemDeployment a owl:ObjectProperty ; + rdfs:domain :Cluster ; + rdfs:range :SystemDeployment ; + owl:minCardinality 1 . + + +## SystemDeployment-specific properties + +:deploysSystem a owl:ObjectProperty , owl:FunctionalProperty ; + rdfs:domain :SystemDeployment ; + rdfs:range :System . + +:hasLabel a owl:DatatypeProperty , owl:FunctionalProperty ; + rdfs:domain :SystemDeployment ; + rdfs:range xsd:string . + +:hasType a owl:DatatypeProperty , owl:FunctionalProperty ; + rdfs:domain :SystemDeployment ; + rdfs:range xsd:string ; + rdfs:comment "The .write extension used to perform the deployment." . + +:hasLocation a owl:DatatypeProperty , owl:FunctionalProperty ; + rdfs:domain :SystemDeployment ; + rdfs:range xsd:string ; + rdfs:comment "Deployment location. This is passed to the selected .write extension" . + +# FIXME: this is actually a key-value mapping, how do you do that in RDF properly? +:hasConfigurationSetting a owl:DatatypeProperty ; + rdfs:domain :SystemDeployment ; + rdfs:range xsd:string ; + rdfs:comment "Arbitrary key=value pair that is set in the environment of the .configure and .write extensions during deployment." . + + +## System-specific properties + +:containsStratumArtifact a owl:ObjectProperty ; + rdfs:domain :System ; + rdfs:range :StratumArtifact ; + owl:minCardinality 1 . + +# A build tool will only understand a certain set of architectures, but I think +# that should not be part of the data model. +:hasArchitecture a owl:DatatypeProperty , owl:FunctionalProperty ; + rdfs:domain :System ; + rdfs:range xsd:string . + +:hasConfigurationExtension a owl:DatatypeProperty ; + rdfs:domain :System ; + rdfs:range xsd:string ; + rdfs:comment "A .configure extension to be run when with system is deployed." . + + +## Stratum-specific properties + +:producesStratumArtifact a owl:ObjectProperty , rdf:Seq ; + rdfs:domain :Stratum ; + rdfs:range :StratumArtifact ; + rdfs:comment "iDescribes how this artifact is split once all chunks are built." . + +:hasStratumBuildDependency a owl:ObjectProperty ; + rdfs:domain :Stratum ; + rdfs:range :Stratum . + +:containsChunkReference a owl:ObjectProperty ; + rdfs:domain :Stratum ; + rdfs:range :ChunkReference ; + owl:minCardinality 1 . + + +## ChunkReference-specific properties + +:refersToChunk a owl:ObjectProperty , owl:FunctionalProperty ; + rdfs:domain :ChunkReference ; + rdfs:range :Chunk . + +:repo a owl:DatatypeProperty , owl:FunctionalProperty ; + rdfs:domain :ChunkReference ; + rdfs:range xsd:string ; + rdfs:comment "Git repo that this chunk's build instructions should be run in. Can be a keyed URL according to the repo-alias mapping, which isn't currently defined in this data model." . + +:ref a owl:DatatypeProperty , owl:FunctionalProperty ; + rdfs:domain :ChunkReference ; + rdfs:range xsd:string ; + rdfs:comment "Ref of the Git repo that should be checked out before building. Usually a SHA1." . + +:unpetrifyRef a owl:DatatypeProperty , owl:FunctionalProperty ; + rdfs:domain :ChunkReference ; + rdfs:range xsd:string ; + rdfs:comment "Name of the ref that should be checked out (useful when 'ref' is a SHA1 to keep track of the actual branch/tag name)." . + +:hasChunkBuildDependency a owl:ObjectProperty ; + rdfs:domain :ChunkReference ; + rdfs:range :Chunk . + +:prefix a owl:DatatypeProperty , owl:FunctionalProperty ; + rdfs:domain :ChunkReference ; + rdfs:range xsd:string ; + rdfs:comment "Value of the PREFIX environment variable in the build environment (defaults to /usr)" . + +# FIXME: it's possible to specify in OWL that 'bootstrap' and 'normal' are the +# only valid values. +:buildMode a owl:DatatypeProperty , owl:FunctionalProperty ; + rdfs:domain :ChunkReference ; + rdfs:range xsd:string . + + +## Chunk-specific properties + +# build-system isn't included here, as it overlaps with the *-commands +# fields in an unfortunate way. + +# Note that representing lists of things in RDF is a bit of a pain. +# http://smiy.sourceforge.net/olo/spec/orderedlistontology.html might +# be worth investigating. + +:producesChunkArtifact a owl:ObjectProperty , rdf:Seq ; + rdfs:domain :Chunk ; + rdfs:range :ChunkArtifact ; + rdfs:comment "Describes how this artifact is split once built." . + +:maxJobs a owl:FunctionalProperty ; + rdfs:domain :Chunk ; + rdfs:range xsd:integer ; + rdfs:comment "Number of parallel jobs that can be run for this chunk. Only useful if set to 1, to mark components which have Makefiles that do not work with `make -j N`." + +:CommandSequence a owl:Class ; + rdfs:subClassOf rdf:Seq ; + rdfs:comment "An ordered sequence of commands." . + +:preConfigureCommands a owl:ObjectProperty , owl:FunctionalProperty ; + rdfs:domain :Chunk ; + rdfs:range :CommandSequence . + +:configureCommands a owl:ObjectProperty , owl:FunctionalProperty ; + rdfs:domain :Chunk ; + rdfs:range :CommandSequence . + +:postConfigureCommands a owl:ObjectProperty , owl:FunctionalProperty ; + rdfs:domain :Chunk ; + rdfs:range :CommandSequence . + +:preBuildCommands a owl:ObjectProperty , owl:FunctionalProperty ; + rdfs:domain :Chunk ; + rdfs:range :CommandSequence . + +:buildCommands a owl:ObjectProperty , owl:FunctionalProperty ; + rdfs:domain :Chunk ; + rdfs:range :CommandSequence . + +:postBuildCommands a owl:ObjectProperty , owl:FunctionalProperty ; + rdfs:domain :Chunk ; + rdfs:range :CommandSequence . + +:preInstallCommands a owl:ObjectProperty , owl:FunctionalProperty ; + rdfs:domain :Chunk ; + rdfs:range :CommandSequence . + +:installCommands a owl:ObjectProperty , owl:FunctionalProperty ; + rdfs:domain :Chunk ; + rdfs:range :CommandSequence . + +:postInstallCommands a owl:ObjectProperty , owl:FunctionalProperty ; + rdfs:domain :Chunk ; + rdfs:range :CommandSequence . + + +# Artifact properties + +:includes a owl:DatatypeProperty , rdf:Seq ; + rdfs:domain :Artifact ; + rdfs:range xsd:string ; + rdfs:comment "A regular expression pattern. The results of a build are matched against this pattern and any that match will be included in that artifact." . diff --git a/schemas/chunk.json-schema b/schemas/chunk.json-schema new file mode 100644 index 00000000..8de2fb5f --- /dev/null +++ b/schemas/chunk.json-schema @@ -0,0 +1,116 @@ +$schema: http://json-schema.org/draft-04/schema# +id: http://git.baserock.org/cgi-bin/cgit.cgi/baserock/baserock/definitions.git/tree/schemas/chunk.json-schema + +description: | + This is a JSON-Schema description of a 'chunk' .morph file, which is part of + the Baserock definitions YAML representation format. + + This JSON-Schema file is valid for VERSION 7 of the Baserock definitions + YAML serialisation format. + + The Baserock definitions format is the recommended way of representing + Baserock definitions on disk. The actual data model is described separately. + See https://wiki.baserock.org/definitions for more information. + + This schema is represented as YAML, so that it can be edited more easily. + You may need to convert to JSON if using a JSON-Schema tool that expects + its input to be an actual string containing data serialised as JSON. + +definitions: + # Corresponds to CommandSequence in Baserock data model. + command-sequence: + type: array + items: { type: string } + + # Corresponds to DeviceNode in Baserock data model. + device-node: + type: object + required: [type, filename, gid, uid, major, minor, permissions] + properties: + type: { type: string } + filename: { type: string } + gid: { type: integer } + uid: { type: integer } + major: { type: integer } + minor: { type: integer } + permissions: { type: string } + + # Defines one or more instances of ChunkArtifact from the Baserock data model. + split-rules: + type: array + items: + type: object + + required: [artifact, include] + additionalProperties: false + + properties: + artifact: {type: string} + include: + type: array + items: + type: string + format: regex + + system-integration-commands: + type: object + patternProperties: + # The property name here should correspond to the name of the chunk's + # artifacts, probably the '-bins' artifact if you are using the normal + # splitting rules. + ^.*$: + type: object + patternProperties: + ^.*$: + $ref: "#/definitions/command-sequence" + +# Corresponds to Chunk in Baserock data model. +type: object + +additionalProperties: false +required: [ 'name', 'kind'] + +properties: + name: { type: string } + kind: { enum: [ "chunk" ] } + + description: { type: string } + + build-system: { type: string } + max-jobs: { type: integer } + + products: + $ref: "#/definitions/split-rules" + + pre-configure-commands: + $ref: "#/definitions/command-sequence" + configure-commands: + $ref: "#/definitions/command-sequence" + post-configure-commands: + $ref: "#/definitions/command-sequence" + pre-build-commands: + $ref: "#/definitions/command-sequence" + build-commands: + $ref: "#/definitions/command-sequence" + post-build-commands: + $ref: "#/definitions/command-sequence" + pre-install-commands: + $ref: "#/definitions/command-sequence" + install-commands: + $ref: "#/definitions/command-sequence" + post-install-commands: + $ref: "#/definitions/command-sequence" + pre-strip-commands: + $ref: "#/definitions/command-sequence" + strip-commands: + $ref: "#/definitions/command-sequence" + post-strip-commands: + $ref: "#/definitions/command-sequence" + + system-integration: + $ref: "#/definitions/system-integration-commands" + + devices: + type: array + items: + $ref: "#/definitions/device-node" diff --git a/schemas/cluster.json-schema b/schemas/cluster.json-schema new file mode 100644 index 00000000..1a628c7f --- /dev/null +++ b/schemas/cluster.json-schema @@ -0,0 +1,64 @@ +$schema: http://json-schema.org/draft-04/schema# +id: http://git.baserock.org/cgi-bin/cgit.cgi/baserock/baserock/definitions.git/tree/schemas/cluster.json-schema + +description: + This is a JSON-Schema description of a 'cluster' .morph file, which is part + of the Baserock definitions YAML representation format. + + This JSON-Schema file is valid for VERSION 7 of the Baserock definitions + YAML serialisation format. + + The Baserock definitions format is the recommended way of representing + Baserock definitions on disk. The actual data model is described separately. + See https://wiki.baserock.org/definitions for more information. + + This schema is represented as YAML, so that it can be edited more easily. + You may need to convert to JSON if using a JSON-Schema tool that expects + its input to be an actual string containing data serialised as JSON. + +definitions: + # A reference to a System, plus one or more SystemDeployment for that system. + system-deployment-set: + type: object + + required: [ 'morph', 'deploy' ] + additionalProperties: false + + properties: + morph: { type: string } + deploy-defaults: + type: object + additionalProperties: true + deploy: + patternProperties: + ^.*$: { $ref: "#/definitions/system-deployment" } + subsystems: + type: array + items: { $ref: "#/definitions/system-deployment-set" } + + # Corresponds to SystemDeployment in Baserock data model. + system-deployment: + type: object + + required: [ 'type', 'location' ] + additionalProperties: true + + properties: + type: { type: string } + location: { type: string } + + +# Corresponds to Cluster in Baserock data model. +type: object + +#required: [ 'name', 'kind', 'systems' ] +additionalProperties: false + +properties: + name: { type: string } + kind: { enum: [ "cluster" ] } + description: { type: string } + + systems: + type: array + items: { $ref: "#/definitions/system-deployment-set" } diff --git a/schemas/defaults.json-schema b/schemas/defaults.json-schema new file mode 100644 index 00000000..2f713425 --- /dev/null +++ b/schemas/defaults.json-schema @@ -0,0 +1,66 @@ +$schema: http://json-schema.org/draft-04/schema# +id: http://git.baserock.org/cgi-bin/cgit.cgi/baserock/baserock/definitions.git/tree/schemas/defaults.json-schema + +description: | + This is a JSON-Schema description of the DEFAULTS file specified in the + Baserock definitions format. DEFAULTS is a YAML file that contains global + defaults for a set of Baserock definitions. + + This JSON-Schema file is valid for VERSION 7 of the Baserock definitions + YAML serialisation format. + + The Baserock definitions YAML serialisation format is the recommended way of + representing Baserock definitions on disk. The actual data model is described + separately. See <https://wiki.baserock.org/definitions> for more information. + + This schema is represented as YAML, so that it can be edited more easily. + You may need to convert to JSON if using a JSON-Schema tool that expects + its input to be an actual string containing data serialised as JSON. + +definitions: + command-sequence: + type: array + items: {type: string} + + build-system: + type: object + additionalProperties: false + properties: + build-commands: {$ref: '#/definitions/command-sequence'} + configure-commands: {$ref: '#/definitions/command-sequence'} + install-commands: {$ref: '#/definitions/command-sequence'} + strip-commands: {$ref: '#/definitions/command-sequence'} + + split-rules: + type: array + items: + type: object + + required: [artifact, include] + additionalProperties: false + + properties: + artifact: {type: string} + include: + type: array + items: + type: string + format: regex + +type: object +additionalProperties: false + +properties: + # Predefined build systems. + build-systems: + type: object + patternProperties: + ^.*$: {$ref: '#/definitions/build-system'} + + # Predefined artifact splitting rules. + split-rules: + type: object + additionalProperties: false + properties: + chunk: {$ref: '#/definitions/split-rules'} + stratum: {$ref: '#/definitions/split-rules'} diff --git a/schemas/stratum.json-schema b/schemas/stratum.json-schema new file mode 100644 index 00000000..0330f37d --- /dev/null +++ b/schemas/stratum.json-schema @@ -0,0 +1,99 @@ +$schema: http://json-schema.org/draft-04/schema# +id: http://git.baserock.org/cgi-bin/cgit.cgi/baserock/baserock/definitions.git/tree/schemas/chunk.json-schema + +description: | + This is a JSON-Schema description of a 'stratum' .morph file, which is part + of the Baserock definitions YAML representation format. + + This JSON-Schema file is valid for VERSION 7 of the Baserock definitions + YAML serialisation format. + + The Baserock definitions format is the recommended way of representing + Baserock definitions on disk. The actual data model is described separately. + See https://wiki.baserock.org/definitions for more information. + + This schema is represented as YAML, so that it can be edited more easily. + You may need to convert to JSON if using a JSON-Schema tool that expects + its input to be an actual string containing data serialised as JSON. + +definitions: + # Defines one or more instances of StratumArtifact from the Baserock data + # model. + split-rules: + type: array + items: + type: object + + required: [artifact, include] + additionalProperties: false + + properties: + artifact: {type: string} + include: + type: array + items: + type: string + format: regex + + # Corresponds to ChunkReference in Baserock data model. + chunk-reference: + type: object + + required: [ 'repo', 'ref' ] + additionalProperties: false + + properties: + name: { type: string } + morph: { type: string } + repo: { type: string } + ref: { type: string } + unpetrify-ref: { type: string } + build-mode: { type: string } + prefix: { type: string } + build-system: { type: string } + build-depends: + type: array + items: { type: string } + artifacts: + type: object + # This defines which chunk artifacts go in which stratum artifact. + # E.g. "glibc-nss: build-essential-runtime" specifies the glibc-nss + # chunk artifact should go in the build-essential-runtime stratum + # artifact. + patternProperties: + ^.*$: { type: string } + + # This doesn't need any special treatment in the Baserock data model because + # it's a link to another stratum definition, without any extra info. + stratum-reference: + type: object + + required: [ 'morph' ] + additionalProperties: false + + properties: + morph: { type: string } + + +# Corresponds to Stratum in Baserock data model. +type: object + +required: [ 'name', 'kind', 'chunks' ] +additionalProperties: false + +properties: + name: { type: string } + kind: { enum: [ "stratum" ] } + description: { type: string } + + build-depends: + type: array + items: + $ref: "#/definitions/stratum-reference" + + products: + $ref: "#/definitions/split-rules" + + chunks: + type: array + items: { $ref: "#/definitions/chunk-reference" } diff --git a/schemas/system.json-schema b/schemas/system.json-schema new file mode 100644 index 00000000..a2fc0c5d --- /dev/null +++ b/schemas/system.json-schema @@ -0,0 +1,59 @@ +$schema: http://json-schema.org/draft-04/schema# +id: http://git.baserock.org/cgi-bin/cgit.cgi/baserock/baserock/definitions.git/tree/schemas/system.json-schema + +description: | + This is a JSON-Schema description of a 'system' .morph file, which is part of + the Baserock definitions YAML representation format. + + This JSON-Schema file is valid for VERSION 7 of the Baserock definitions + YAML serialisation format. + + The Baserock definitions format is the recommended way of representing + Baserock definitions on disk. The actual data model is described separately. + See https://wiki.baserock.org/definitions for more information. + + This schema is represented as YAML, so that it can be edited more easily. + You may need to convert to JSON if using a JSON-Schema tool that expects + its input to be an actual string containing data serialised as JSON. + +definitions: + # In the Baserock data model, this becomes a list of links to StratumArtifact + # entities. + stratum-reference: + type: object + + required: [ 'morph' ] + additionalProperties: false + + properties: + name: { type: string } + morph: { type: string } + artifacts: + type: array + items: { type: string } + + +# Corresponds to System in Baserock data model. +system: +type: object + +required: [ 'name', 'kind', 'strata' ] +additionalProperties: false + +properties: + name: { type: string } + kind: { enum: [ "system" ] } + description: { type: string } + + # Morph and YBD will only accept certain values for 'arch' based on + # hardcoded conditions in those tools. + arch: { type: string } + + strata: + type: array + items: + $ref: "#/definitions/stratum-reference" + + configuration-extensions: + type: array + items: { type: string } diff --git a/scripts/yaml-jsonschema b/scripts/yaml-jsonschema new file mode 100755 index 00000000..64f52a79 --- /dev/null +++ b/scripts/yaml-jsonschema @@ -0,0 +1,50 @@ +#!/usr/bin/env python +# Copyright (C) 2015 Codethink Limited +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; version 2 of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program. If not, see <http://www.gnu.org/licenses/>. + + +'''A tool to validate YAML files against the JSON-Schema schemas. + +This wraps Python `jsonschema` module so that YAML schemas can be understood +and YAML data can be validated. + +Usage: yaml-jsonschema SCHEMA INPUT1 [INPUT2, ...] + +''' + + +import jsonschema +import yaml + +import sys + + +schema_file = sys.argv[1] +input_files = sys.argv[2:] + + +with open(schema_file) as f: + schema = yaml.load(f) + + +for input_file in input_files: + with open(input_file) as f: + data = yaml.load(f) + + try: + jsonschema.validate(data, schema) + print("%s: valid" % input_file) + except jsonschema.ValidationError as e: + # Print 'e' instead of 'e.message' for more information! + print("%s: %s" % (input_file, e.message)) diff --git a/strata/NetworkManager-common.morph b/strata/NetworkManager-common.morph index d2eab3e9..661f210f 100644 --- a/strata/NetworkManager-common.morph +++ b/strata/NetworkManager-common.morph @@ -9,19 +9,22 @@ chunks: repo: upstream:libndp ref: f3a3a63d5b5abced8f75731d7b995606933c6e33 unpetrify-ref: v1.4 + build-system: autotools - name: readline6 repo: upstream:readline ref: 7628b745a813aac53586b640da056a975f1c443e unpetrify-ref: readline-6.3 + build-system: autotools - name: libgudev repo: upstream:libgudev ref: d722339aae9065a379acc0c421e8bbab866d5a38 unpetrify-ref: 230 + build-system: autotools - name: NetworkManager morph: strata/NetworkManager-common/NetworkManager.morph repo: upstream:NetworkManager - ref: acdaf78a068b6c65ba799a7098b867953db4801c - unpetrify-ref: 1.0.0 + ref: c41be469ab107ea2b4813bf28a1618572b78aa6a + unpetrify-ref: 1.1.0-dev-1952-gc41be46 build-depends: - libgudev - libndp diff --git a/strata/NetworkManager-common/NetworkManager.morph b/strata/NetworkManager-common/NetworkManager.morph index 553c979b..9b9a93de 100644 --- a/strata/NetworkManager-common/NetworkManager.morph +++ b/strata/NetworkManager-common/NetworkManager.morph @@ -2,4 +2,8 @@ name: NetworkManager kind: chunk build-system: autotools configure-commands: -- ./autogen.sh --prefix="$PREFIX" --with-session-tracking=systemd --disable-ppp --enable-more-warnings=yes +- ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc --with-session-tracking=systemd --disable-ppp --enable-more-warnings=yes +system-integration: + ModemManager-misc: + 00-enable-NetworkManager-unit: + - systemctl enable NetworkManager diff --git a/strata/apache-httpd-server.morph b/strata/apache-httpd-server.morph index 5aae0c65..3e32f7e5 100644 --- a/strata/apache-httpd-server.morph +++ b/strata/apache-httpd-server.morph @@ -4,7 +4,7 @@ description: apache http web server and some utilities related to it build-depends: - morph: strata/tools.morph - morph: strata/pcre-utils.morph -- morph: strata/python-core.morph +- morph: strata/python2-core.morph chunks: - name: apr morph: strata/apache-httpd-server/apr.morph @@ -22,10 +22,12 @@ chunks: repo: upstream:python-packages/psutil ref: 2bc8555f0428af81c2d067aa76168ed7bc5e0179 unpetrify-ref: release-2.2.0 + build-system: python-distutils - name: mod_wsgi-metrics repo: upstream:python-packages/mod_wsgi-metrics ref: ec715eb593255229f9f45f3f323edbb845c691d8 unpetrify-ref: 1.1.1 + build-system: python-distutils build-depends: - psutil - name: mod_wsgi diff --git a/strata/audio-bluetooth.morph b/strata/audio-bluetooth.morph index ee1e537c..0bf1c220 100644 --- a/strata/audio-bluetooth.morph +++ b/strata/audio-bluetooth.morph @@ -9,10 +9,12 @@ chunks: repo: upstream:libatomic_ops ref: 0a58f5d63969c10d2141af89cb7a53df786909ab unpetrify-ref: baserock/morph + build-system: autotools - name: alsa-lib repo: upstream:alsa-lib ref: 9cfd1faa27511edbb8bebbab85030125f33590ae unpetrify-ref: v1.0.28 + build-system: autotools - name: alsa-utils morph: strata/audio-bluetooth/alsa-utils.morph repo: upstream:alsa-utils @@ -37,6 +39,7 @@ chunks: repo: upstream:dbus-glib ref: 397e8297d433547c9bf4150ddd2b9e0b4c39628c unpetrify-ref: dbus-glib_0.102 + build-system: autotools - name: bluez-tools morph: strata/audio-bluetooth/bluez-tools.morph repo: upstream:bluez-tools @@ -48,6 +51,7 @@ chunks: repo: upstream:obexd ref: 4225280022c206762c91beee47c62d05e1baeacc unpetrify-ref: baserock/morph + build-system: autotools build-depends: - bluez - libical @@ -55,6 +59,7 @@ chunks: repo: upstream:speex ref: e5dc987a403426ee3d0d81768afffa0fe74e20fa unpetrify-ref: baserock/morph + build-system: autotools - name: nohands morph: strata/audio-bluetooth/nohands.morph repo: upstream:nohands @@ -67,6 +72,7 @@ chunks: repo: upstream:mobile-broadband-provider-info ref: 4ed19e11c2975105b71b956440acdb25d46a347d unpetrify-ref: baserock/morph + build-system: autotools - name: ofono morph: strata/audio-bluetooth/ofono.morph repo: upstream:ofono diff --git a/strata/baserock-import.morph b/strata/baserock-import.morph index 5623886e..74fc9363 100644 --- a/strata/baserock-import.morph +++ b/strata/baserock-import.morph @@ -9,13 +9,16 @@ chunks: repo: upstream:python-packages/ansicolor ref: 9d3adbaff35bb6cde1d63414a8cc72f572c4d0ef unpetrify-ref: 0.2.4 + build-system: python-distutils - name: requests-cache repo: upstream:python-packages/requests-cache ref: a1b5e65ccd715f1e8434f18f27913715340d6aaf unpetrify-ref: 0.4.6 + build-system: python-distutils - name: baserock-import repo: baserock:baserock/import - ref: 461979515ca30cd8e5acdec4cdb5ca3adeb6a9e7 + ref: f74e7e428325be1cb018898a52d0aed4aec7a549 unpetrify-ref: master + build-system: python-distutils build-depends: - ansicolor diff --git a/strata/bsp-armv7l-altera-socfpga-devkit.morph b/strata/bsp-armv7l-altera-socfpga-devkit.morph new file mode 100644 index 00000000..403e04e1 --- /dev/null +++ b/strata/bsp-armv7l-altera-socfpga-devkit.morph @@ -0,0 +1,39 @@ +name: bsp-armv7l-altera-socfpga-devkit +kind: stratum +description: | + The platform dependent components required to boot the Altera Cortex-A9 + HPS core on an Altera SoCFPGA development kit. +build-depends: +- morph: strata/coreutils-common.morph +- morph: strata/tools.morph +chunks: +- name: u-boot-tools@socfpga-devkit + morph: strata/bsp-armv7l-altera-socfpga-devkit/u-boot-tools@socfpga-devkit.morph + repo: upstream:u-boot + ref: 905e8f9e53766e606bd4a0ed46d804889e613f32 + unpetrify-ref: v2015.07-rc1 +- name: u-boot@socfpga-devkit + morph: strata/bsp-armv7l-altera-socfpga-devkit/u-boot@socfpga-devkit.morph + repo: upstream:u-boot-socfpga + ref: 32c1d91bc0d10beca54c2dfc5b475d4ffeffc15a + unpetrify-ref: socfpga_v2013.01.01 +- name: bsp-support@socfpga-devkit + morph: strata/bsp-armv7l-altera-socfpga-devkit/bsp-support@socfpga-devkit.morph + repo: baserock:baserock/bsp-support + ref: 95e6be2188ad9dfd13cb8887cdc698519831871d + unpetrify-ref: master + build-depends: + - u-boot-tools@socfpga-devkit +- name: preloader@socfpga-devkit + morph: strata/bsp-armv7l-altera-socfpga-devkit/preloader@socfpga-devkit.morph + repo: upstream:u-boot-socfpga + ref: 32c1d91bc0d10beca54c2dfc5b475d4ffeffc15a + unpetrify-ref: socfpga_v2013.01.01 + build-depends: + - bsp-support@socfpga-devkit + - u-boot-tools@socfpga-devkit +- name: linux-armv7l-altera-socfpga-devkit + morph: strata/bsp-armv7l-altera-socfpga-devkit/linux-armv7l-altera-socfpga-devkit.morph + repo: upstream:linux + ref: e26081808edadfd257c6c9d81014e3b25e9a6118 + unpetrify-ref: v4.1-rc4 diff --git a/strata/bsp-armv7l-altera-socfpga-devkit/bsp-support@socfpga-devkit.morph b/strata/bsp-armv7l-altera-socfpga-devkit/bsp-support@socfpga-devkit.morph new file mode 100644 index 00000000..2e206b4e --- /dev/null +++ b/strata/bsp-armv7l-altera-socfpga-devkit/bsp-support@socfpga-devkit.morph @@ -0,0 +1,17 @@ +name: bsp-support@socfpga-devkit +kind: chunk +build-commands: +# Modify auto-generated source files: +- mv altera-socfpga/* . +- for file in patches/*.diff; do patch -p 1 < "$file"; done +- sed -i 's/^PRELOADER_SETTINGS_DIR := .*$/PRELOADER_SETTINGS_DIR := .\/hps_hps_0/' hardware-handoff/spl_bsp/Makefile +- sed -i 's/^CROSS_COMPILE := .*$/CROSS_COMPILE := \/usr\/bin\//' hardware-handoff/spl_bsp/Makefile +- mkenvimage -s 4096 -o socfpga-devkit-env.img socfpga-devkit-env.txt +- dtc -f -I dts -O dtb dts-generated/socfpga-devkit.dts > socfpga-devkit.dtb +install-commands: +- mkdir -p "$DESTDIR/boot" +- install -m 755 socfpga-devkit-env.img "$DESTDIR/boot" +- install -m 755 socfpga-devkit.dtb "$DESTDIR/boot" +# These files are required later, to be built against U-Boot: +- mkdir -p "$DESTDIR/tmp/preloader" +- cp -R ./hardware-handoff/* "$DESTDIR/tmp/preloader" diff --git a/strata/bsp-armv7l-altera-socfpga-devkit/device-tree-compiler.morph b/strata/bsp-armv7l-altera-socfpga-devkit/device-tree-compiler.morph new file mode 100644 index 00000000..8abfafc8 --- /dev/null +++ b/strata/bsp-armv7l-altera-socfpga-devkit/device-tree-compiler.morph @@ -0,0 +1,6 @@ +name: device-tree-compiler +kind: chunk +build-commands: +- make all +install-commands: +- make install DESTDIR="$DESTDIR" PREFIX="$PREFIX" diff --git a/strata/bsp-armv7l-altera-socfpga-devkit/linux-armv7l-altera-socfpga-devkit.morph b/strata/bsp-armv7l-altera-socfpga-devkit/linux-armv7l-altera-socfpga-devkit.morph new file mode 100644 index 00000000..95684083 --- /dev/null +++ b/strata/bsp-armv7l-altera-socfpga-devkit/linux-armv7l-altera-socfpga-devkit.morph @@ -0,0 +1,34 @@ +name: linux-armv7l-socfpga-devkit +kind: chunk +configure-commands: +- git status +- make ARCH=arm socfpga_defconfig +- scripts/config -e BTRFS_FS +- scripts/config -e BTRFS_FS_POSIX_ACL +- scripts/config -d BTRFS_FS_CHECK_INTEGRITY +- scripts/config -e DEVTMPFS +- scripts/config -e DEVTMPFS_MOUNT +- scripts/config -e FUSE_FS +- scripts/config -e OVERLAY_FS +- scripts/config -e CONFIG_FHANDLE +- scripts/config -e CGROUPS +- scripts/config -e AUTOFS4_FS +- scripts/config -e BLK_DEV_LOOP +- scripts/config --set-str UEVENT_HELPER_PATH '' +- scripts/config -e DM_SNAPSHOT +- scripts/config -e IKCONFIG +- scripts/config -e IKCONFIG_PROC +- scripts/config -e SECCOMP +- scripts/config -d DEBUG_STACK_TRACE +- scripts/config -e FB_VESA +- scripts/config -e VLAN_8021Q +- scripts/config -e BRIDGE_VLAN_FILTERING +- scripts/config -e IPV6 +- scripts/config -d MTD_NAND +- yes '' | make oldconfig +build-commands: +- make ARCH=arm LOADADDR=0x8000 zImage dtbs $MAKEFLAGS +install-commands: +- mkdir -p "$DESTDIR"/boot +- cp arch/arm/boot/zImage "$DESTDIR"/boot/zImage +- cp arch/arm/boot/dts/socfpga_cyclone5*.dtb "$DESTDIR"/boot/ diff --git a/strata/bsp-armv7l-altera-socfpga-devkit/preloader@socfpga-devkit.morph b/strata/bsp-armv7l-altera-socfpga-devkit/preloader@socfpga-devkit.morph new file mode 100644 index 00000000..c61b10a7 --- /dev/null +++ b/strata/bsp-armv7l-altera-socfpga-devkit/preloader@socfpga-devkit.morph @@ -0,0 +1,17 @@ +name: preloader@socfpga-devkit +kind: chunk +configure-commands: +- mkdir uboot-socfpga +- find -maxdepth 1 | egrep -v '^./uboot-socfpga|\.$' | xargs -I {} mv {} uboot-socfpga +- cp -R /tmp/preloader/spl_bsp/* . +- cp -R /tmp/preloader/hps_hps_0 . +build-commands: +- make +- mkimage -T socfpgaimage -d uboot-socfpga/spl/u-boot-spl.bin preloader.bin +# Signed preloader needs to be duplicated four times +# which U-Boot's mkimage tool doesn't support +- dd if=/dev/zero of=socfpga-preloader.img bs=64K count=4 +- for i in $(seq 0 3); do dd if=preloader.bin of=socfpga-preloader.img bs=64K seek="$i" conv=notrunc; done +install-commands: +- mkdir -p "$DESTDIR/boot" +- install -m 755 socfpga-preloader.img "$DESTDIR/boot" diff --git a/strata/bsp-armv7l-altera-socfpga-devkit/u-boot-tools@socfpga-devkit.morph b/strata/bsp-armv7l-altera-socfpga-devkit/u-boot-tools@socfpga-devkit.morph new file mode 100644 index 00000000..f7d3f7cb --- /dev/null +++ b/strata/bsp-armv7l-altera-socfpga-devkit/u-boot-tools@socfpga-devkit.morph @@ -0,0 +1,14 @@ +name: u-boot-tools@socfpga-devkit +kind: chunk +configure-commands: +- git status +- make ARCH=arm socfpga_cyclone5_config +build-commands: +- make ARCH=arm tools +install-commands: +- mkdir -p "$DESTDIR$PREFIX/bin" +- install -m 755 tools/img2brec.sh "$DESTDIR$PREFIX/bin/." +- install -m 755 tools/jtagconsole "$DESTDIR$PREFIX/bin/." +- install -m 755 tools/netconsole "$DESTDIR$PREFIX/bin/." +- install -m 755 tools/mkenvimage "$DESTDIR$PREFIX/bin/." +- install -m 755 tools/mkimage "$DESTDIR$PREFIX/bin/." diff --git a/strata/bsp-armv7l-altera-socfpga-devkit/u-boot@socfpga-devkit.morph b/strata/bsp-armv7l-altera-socfpga-devkit/u-boot@socfpga-devkit.morph new file mode 100644 index 00000000..2b7ce450 --- /dev/null +++ b/strata/bsp-armv7l-altera-socfpga-devkit/u-boot@socfpga-devkit.morph @@ -0,0 +1,9 @@ +name: u-boot@socfpga-devkit +kind: chunk +configure-commands: +- make ARCH=arm socfpga_cyclone5_config +build-commands: +- make ARCH=arm +install-commands: +- mkdir -p "$DESTDIR/boot" +- install -m 755 u-boot.img "$DESTDIR/boot" diff --git a/strata/bsp-jetson/bsp-support.morph b/strata/bsp-jetson/bsp-support.morph deleted file mode 100644 index 5adb02e4..00000000 --- a/strata/bsp-jetson/bsp-support.morph +++ /dev/null @@ -1,6 +0,0 @@ -name: bsp-support -kind: chunk -install-commands: -- install -o 0 -g 0 -m 644 -D nv-ondemand-cpufreq-governor.service "$DESTDIR/usr/lib/systemd/system/nv-ondemand-cpufreq-governor.service" -- install -d "$DESTDIR/usr/lib/systemd/system/sysinit.target.wants" -- ln -s /usr/lib/systemd/system/nv-ondemand-cpufreq-governor.service "$DESTDIR/usr/lib/systemd/system/sysinit.target.wants/nv-ondemand-cpufreq-governor.service" diff --git a/strata/bsp-x86_64-generic.morph b/strata/bsp-x86_64-generic.morph index 31d8374c..db08f54b 100644 --- a/strata/bsp-x86_64-generic.morph +++ b/strata/bsp-x86_64-generic.morph @@ -9,9 +9,9 @@ build-depends: chunks: - name: linux-x86-64-generic morph: strata/bsp-x86_64-generic/linux-x86-64-generic.morph - repo: upstream:linux - ref: 39a8804455fb23f09157341d3ba7db6d7ae6ee76 - unpetrify-ref: v4.0 + repo: upstream:linux-stable + ref: 64291f7db5bd8150a74ad2036f1037e6a0428df2 + unpetrify-ref: v4.2 - name: nasm morph: strata/bsp-x86_64-generic/nasm.morph repo: upstream:nasm diff --git a/strata/build-essential.morph b/strata/build-essential.morph index a774e420..78063ce4 100644 --- a/strata/build-essential.morph +++ b/strata/build-essential.morph @@ -269,6 +269,7 @@ chunks: repo: upstream:zlib ref: 50893291621658f355bc5b4d450a8d06a563053d unpetrify-ref: v1.2.8 + build-system: autotools build-depends: - stage2-binutils - stage2-busybox diff --git a/strata/build-essential/glibc.morph b/strata/build-essential/glibc.morph index 54dbbd9c..6c87c5d9 100644 --- a/strata/build-essential/glibc.morph +++ b/strata/build-essential/glibc.morph @@ -33,6 +33,7 @@ products: - (usr/)?lib(32|64)?/.*\.o - artifact: glibc-locale include: + - (usr/)?lib/locale/.* - (usr/)?share/locale/.* - (usr/)?share/i18n/.* - (usr/)?share/zoneinfo/.* @@ -69,6 +70,7 @@ build-commands: install-commands: - cd o && make install_root="$DESTDIR" localtime=UTC install +- cd o && make install_root="$DESTDIR" localtime=UTC localedata/install-locales - mkdir -p "$DESTDIR/etc" - mkdir -p "$DESTDIR/etc/ld.so.conf.d" - | diff --git a/strata/build-essential/stage2-make.morph b/strata/build-essential/stage2-make.morph index 0b05581c..af5e5347 100644 --- a/strata/build-essential/stage2-make.morph +++ b/strata/build-essential/stage2-make.morph @@ -3,7 +3,7 @@ kind: chunk build-system: autotools configure-commands: - STAGE2_SYSROOT="$(dirname $(pwd))" CPPFLAGS="--sysroot=$STAGE2_SYSROOT" CXX=false - LDFLAGS="--sysroot=$STAGE2_SYSROOT" ./configure --prefix="$PREFIX" --disable-nls + LDFLAGS="--sysroot=$STAGE2_SYSROOT" ./configure --prefix="$PREFIX" --disable-nls --without-guile --build=$(sh config/config.guess) --host=$TARGET_STAGE1 build-commands: - STAGE2_SYSROOT="$(dirname $(pwd))" make diff --git a/strata/ceph-service.morph b/strata/ceph-service.morph index 4ab9d432..c428a1ba 100644 --- a/strata/ceph-service.morph +++ b/strata/ceph-service.morph @@ -18,16 +18,19 @@ chunks: repo: upstream:libunwind ref: d7322f0f64dab715c4feb5f08edef5660d8719c0 unpetrify-ref: v1.1 + build-system: autotools - name: gperftools repo: upstream:gperftools ref: 846b775dfadb77901202ae7ddbac30ad1de7df01 unpetrify-ref: gperftools-2.2 + build-system: autotools build-depends: - libunwind - name: snappy repo: upstream:snappy-git ref: 1ff9be9b8fafc8528ca9e055646f5932aa5db9c4 unpetrify-ref: master + build-system: autotools - name: leveldb morph: strata/ceph-service/leveldb.morph repo: upstream:leveldb @@ -40,6 +43,7 @@ chunks: repo: upstream:libeditline-tarball ref: 7503ff5f8610734521f40e276b59b3b6291830e7 unpetrify-ref: baserock/morph + build-system: autotools - name: boost morph: strata/ceph-service/boost.morph repo: upstream:boost-tarball diff --git a/strata/cloudinit-support.morph b/strata/cloudinit-support.morph index 9c89c7e4..4cb15542 100644 --- a/strata/cloudinit-support.morph +++ b/strata/cloudinit-support.morph @@ -3,7 +3,7 @@ kind: stratum description: A stratum with cloudinit to fit a system in the OpenStack cloud. build-depends: - morph: strata/build-essential.morph -- morph: strata/python-core.morph +- morph: strata/python2-core.morph - morph: strata/python-common.morph - morph: strata/foundation.morph chunks: @@ -11,6 +11,7 @@ chunks: repo: upstream:python-cheetah ref: 831aa6b99d9b4fb012ee644d8e80e0bc0eb6d6ed unpetrify-ref: baserock/morph + build-system: python-distutils - name: cloud-init morph: strata/cloudinit-support/cloud-init.morph repo: upstream:cloud-init diff --git a/strata/compilers-extra.morph b/strata/compilers-extra.morph new file mode 100644 index 00000000..361d9387 --- /dev/null +++ b/strata/compilers-extra.morph @@ -0,0 +1,18 @@ +name: compilers-extra +kind: stratum +description: | + Extra compilers in addition to the ones in build-essential +build-depends: +- morph: strata/llvm-common.morph +- morph: strata/python2-core.morph +chunks: +- name: clang + morph: strata/compilers-extra/clang.morph + repo: upstream:clang + ref: 40b68b4c02b9d9e1e4138815747adf5589496240 + unpetrify-ref: release_37 +- name: compiler-rt + morph: strata/compilers-extra/compiler-rt.morph + repo: upstream:compiler-rt + ref: b5214093d4c91ed5352d35ee9126665fabfa97fe + unpetrify-ref: release_37 diff --git a/strata/compilers-extra/clang.morph b/strata/compilers-extra/clang.morph new file mode 100644 index 00000000..fb7c1ff6 --- /dev/null +++ b/strata/compilers-extra/clang.morph @@ -0,0 +1,10 @@ +name: clang +kind: chunk +build-system: cmake +configure-commands: +- mkdir o +- cd o && cmake -DCMAKE_INSTALL_PREFIX="$PREFIX" -DCMAKE_BUILD_TYPE=Release .. +build-commands: +- cd o && make +install-commands: +- cd o && make DESTDIR="$DESTDIR" install diff --git a/strata/compilers-extra/compiler-rt.morph b/strata/compilers-extra/compiler-rt.morph new file mode 100644 index 00000000..a1c9085b --- /dev/null +++ b/strata/compilers-extra/compiler-rt.morph @@ -0,0 +1,10 @@ +name: compiler-rt +kind: chunk +build-system: cmake +configure-commands: +- mkdir o +- cd o && cmake -DCMAKE_INSTALL_PREFIX="$PREFIX" -DCMAKE_BUILD_TYPE=Release .. +build-commands: +- cd o && make +install-commands: +- cd o && make DESTDIR="$DESTDIR" install diff --git a/strata/connectivity.morph b/strata/connectivity.morph index dbd4a263..124b4cac 100644 --- a/strata/connectivity.morph +++ b/strata/connectivity.morph @@ -7,6 +7,7 @@ chunks: repo: upstream:libnl ref: a2c4bd8f094a7247903578860a9c42049991860b unpetrify-ref: baserock/morph + build-system: autotools - name: wpa_supplicant morph: strata/connectivity/wpa_supplicant.morph repo: upstream:hostap @@ -18,3 +19,4 @@ chunks: repo: upstream:iptables ref: 482c6d3731e2681cb4baae835c294840300197e6 unpetrify-ref: v1.4.21 + build-system: autotools diff --git a/strata/core.morph b/strata/core.morph index 9e4fd4e1..66880527 100644 --- a/strata/core.morph +++ b/strata/core.morph @@ -5,30 +5,11 @@ description: Core components of a Baserock base system that are build tools requ build-depends: - morph: strata/build-essential.morph chunks: -- name: sqlite3 - repo: upstream:sqlite3 - ref: 24adc227bc29cd17e39df097fbca389c7724cd14 - unpetrify-ref: sqlite-autoconf-3080801 -- name: cmake - morph: strata/core/cmake.morph - repo: upstream:cmake - ref: 732d8a467ab8a295b1bbf580f865980f8a1a9b29 - unpetrify-ref: v3.2.1 - name: gdbm morph: strata/core/gdbm.morph repo: upstream:gdbm-tarball ref: e5faeaaf75ecfb705a9b643b3e4cb881ebb69f48 unpetrify-ref: gdbm-1.11 -- name: mini-utils - morph: strata/core/mini-utils.morph - repo: baserock:baserock/mini-utils - ref: 5293265b29bbf468ab9d7f3302b19dbc81d0f8b8 - unpetrify-ref: master -- name: ncurses - morph: strata/core/ncurses.morph - repo: upstream:ncurses - ref: f67398afa6a76fbc902cc0cea963d5151fa2a953 - unpetrify-ref: ncurses-5.9-20150131 - name: perl morph: strata/core/perl.morph repo: upstream:perl @@ -36,6 +17,11 @@ chunks: unpetrify-ref: v5.22.0 build-depends: - gdbm +- name: ncurses + morph: strata/core/ncurses.morph + repo: upstream:ncurses + ref: f67398afa6a76fbc902cc0cea963d5151fa2a953 + unpetrify-ref: ncurses-5.9-20150131 - name: texinfo-tarball morph: strata/core/texinfo-tarball.morph repo: upstream:texinfo-tarball @@ -64,6 +50,7 @@ chunks: repo: upstream:help2man ref: 83bab7e2e8e24a380266a9a247c029c49b0de666 unpetrify-ref: baserock/v1.46.5 + build-system: autotools build-depends: - autoconf-tarball - automake @@ -89,6 +76,7 @@ chunks: repo: upstream:file ref: f69c3fd9bcb108292e7887dd889e8b49f68c4a52 unpetrify-ref: file-5.22 + build-system: autotools - name: libexpat morph: strata/core/libexpat.morph repo: upstream:libexpat @@ -99,27 +87,6 @@ chunks: - automake - file - libtool-tarball -- name: gettext-tarball - morph: strata/core/gettext-tarball.morph - repo: upstream:gettext-tarball - ref: 482840e61f86ca321838a91e902c41d40c098bbb - unpetrify-ref: gettext-0.19.4 - build-depends: - - libexpat -- name: bash - morph: strata/core/bash.morph - repo: upstream:bash - ref: 3590145af6f1c9fa321dff231f69ae696e7e740b - unpetrify-ref: baserock/bash-4.3-patch-27 -- name: flex - morph: strata/core/flex.morph - repo: upstream:flex - ref: de10f98e8a2dc2a021796811490d0f30c3cd90bf - unpetrify-ref: baserock/build-essential - build-depends: - - automake - - file - - gettext-tarball - name: openssl-new morph: strata/core/openssl-new.morph repo: upstream:openssl-new @@ -147,11 +114,16 @@ chunks: build-depends: - autoconf - automake -- name: cpython - morph: strata/core/cpython.morph +- name: sqlite3 + repo: upstream:sqlite3 + ref: 24adc227bc29cd17e39df097fbca389c7724cd14 + unpetrify-ref: sqlite-autoconf-3080801 + build-system: autotools +- name: python3 + morph: strata/core/python3.morph repo: upstream:cpython - ref: 57af3f22d11600ca98c0c9073d0b3b57d43f7c4b - unpetrify-ref: v2.7.10 + ref: 3f1e8a3de39ff8a807720d57f49a91d7449435ad + unpetrify-ref: v3.4.3 build-depends: - openssl-new - bzip2 @@ -160,15 +132,58 @@ chunks: - sqlite3 - ncurses - readline -- name: cython - repo: upstream:cython - ref: 4dd8e762fa51d01775506fbbc102c45dbcea065d - unpetrify-ref: 0.22 +- name: ca-certificates + morph: strata/core/ca-certificates.morph + repo: upstream:ca-certificates + ref: 642c21872876ce2f9ec323b1df44f1cd6c47e91c + unpetrify-ref: baserock/debian/20150426 + build-depends: + - automake + - python3 +- name: curl + morph: strata/core/curl.morph + repo: upstream:curl + ref: 202aa9f7758636730299b86715d924f54468a908 + unpetrify-ref: curl-7_38_0 + build-depends: + - autoconf + - automake + - file + - libtool-tarball + - openssl-new +- name: gettext-tarball + morph: strata/core/gettext-tarball.morph + repo: upstream:gettext-tarball + ref: 482840e61f86ca321838a91e902c41d40c098bbb + unpetrify-ref: gettext-0.19.4 + build-depends: + - libexpat +- name: git-minimal + morph: strata/core/git-minimal.morph + repo: upstream:git + ref: 9874fca7122563e28d699a911404fc49d2a24f1c + unpetrify-ref: v2.3.0 + build-depends: + - autoconf + - python3 + - curl + - gettext-tarball + - libexpat + - openssl-new +- name: flex + morph: strata/core/flex.morph + repo: upstream:flex + ref: de10f98e8a2dc2a021796811490d0f30c3cd90bf + unpetrify-ref: baserock/build-essential build-depends: - - cpython -# Note: bison's version number must be set in bison's chunk morph, -# so if you update bison be sure to also update the version number -# in strata/core/bison.morph + - automake + - file + - gettext-tarball +- name: mini-utils + morph: strata/core/mini-utils.morph + repo: baserock:baserock/mini-utils + ref: 5293265b29bbf468ab9d7f3302b19dbc81d0f8b8 + unpetrify-ref: master - name: bison morph: strata/core/bison.morph repo: upstream:bison @@ -179,11 +194,9 @@ chunks: - automake - flex - gettext-tarball + - git-minimal - help2man - mini-utils -# Note: patch's version number must be set in patch's chunk morph, -# so if you update patch be sure to also update the version number -# in strata/core/patch.morph - name: patch morph: strata/core/patch.morph repo: upstream:patch @@ -192,21 +205,20 @@ chunks: build-depends: - autoconf - automake - - mini-utils - bison + - git-minimal + - mini-utils - name: xz repo: upstream:xz ref: a0cd05ee71d330b79ead6eb9222e1b24e1559d3a unpetrify-ref: v5.2.0 + build-system: autotools build-depends: - autoconf - automake - file - gettext-tarball - libtool-tarball -# Note: libtool's version number must be set in libtool's chunk morph, -# so if you update libtool be sure to also update the version number -# in strata/core/libtool.morph - name: libtool morph: strata/core/libtool.morph repo: upstream:libtool @@ -217,73 +229,10 @@ chunks: - automake - file - help2man + - git-minimal - patch - texinfo-tarball - xz -- name: libxml2 - repo: upstream:libxml2 - ref: ee8f1d4cda8dc1a6f2c515fe234f7bc89cdc9f80 - unpetrify-ref: baserock/morph - build-depends: - - autoconf - - automake - - file - - cpython - - libtool - - xz -- name: ca-certificates - morph: strata/core/ca-certificates.morph - repo: upstream:ca-certificates - ref: e9b06b26d9e57444e74a5cb6beca3f12726fc3c6 - unpetrify-ref: baserock/debian/20140325 - build-depends: - - automake - - cpython -- name: curl - morph: strata/core/curl.morph - repo: upstream:curl - ref: 202aa9f7758636730299b86715d924f54468a908 - unpetrify-ref: curl-7_38_0 - build-depends: - - autoconf - - automake - - file - - libtool - - openssl-new - - ca-certificates -- name: XML-Parser - repo: upstream:XML-Parser - ref: e1a3ec157140a699e3020836475a0df622f70f1b - unpetrify-ref: baserock/morph - build-depends: - - libexpat - - perl -- name: git - morph: strata/core/git.morph - repo: upstream:git - ref: 9874fca7122563e28d699a911404fc49d2a24f1c - unpetrify-ref: v2.3.0 - build-depends: - - autoconf - - cpython - - curl - - gettext-tarball - - libexpat - - openssl-new -- name: gperf - morph: strata/core/gperf.morph - repo: upstream:gperf - ref: 5094e4a539adf845111013f82c2c4fcaec637983 - unpetrify-ref: baserock/morph -- name: intltool - repo: upstream:intltool - ref: 12f04c88be9ff8a578d8fd6990ee2448c66dc5f4 - unpetrify-ref: baserock/morph - build-depends: - - XML-Parser - - autoconf - - automake - - perl - name: pkg-config morph: strata/core/pkg-config.morph repo: upstream:pkg-config @@ -358,45 +307,106 @@ chunks: - acl - linux-pam - libcap2 -# Note: util-linux's version number must be set in util-linux's chunk morph, -# so if you update util-linux be sure to also update the version number -# in strata/core/util-linux.morph - name: util-linux morph: strata/core/util-linux.morph repo: upstream:util-linux - ref: 34760e62e0d5a25262a6aa801b2f1df61216363f - unpetrify-ref: v2.26.1 + ref: cd150a429d15a7c96918aa2432532ced0bd27465 + unpetrify-ref: v2.27 build-depends: - autoconf - automake - gettext-tarball + - git-minimal - libtool - pkg-config - linux-pam - shadow -- name: bc - repo: upstream:bc-tarball - ref: 0956d119432ff6a2e85bae1fa336df799cad70b0 - unpetrify-ref: baserock/morph +- name: e2fsprogs + morph: strata/core/e2fsprogs.morph + repo: upstream:e2fsprogs + ref: 6a3741ad293031447b95b88431eafa77401a8987 + unpetrify-ref: v1.42.12 build-depends: - - flex - - texinfo-tarball + - pkg-config + - util-linux + - file +- name: libxml2 + repo: upstream:libxml2 + ref: f4e5a6994ed230dfa3fb5b5c3fd94c4993ef1ba7 + unpetrify-ref: v2.9.1 + build-system: autotools + build-depends: + - autoconf + - automake + - file + - python3 + - libtool + - xz - name: libxslt repo: upstream:libxslt ref: 73e08bf7c36a9145d38f51d37e66529b873c011a unpetrify-ref: master + build-system: autotools build-depends: - autoconf - libtool - automake - file - libxml2 -- name: e2fsprogs - morph: strata/core/e2fsprogs.morph - repo: upstream:e2fsprogs - ref: 6a3741ad293031447b95b88431eafa77401a8987 - unpetrify-ref: v1.42.12 +- name: XML-Parser + repo: upstream:XML-Parser + ref: e1a3ec157140a699e3020836475a0df622f70f1b + unpetrify-ref: baserock/morph + build-system: cpan build-depends: - - pkg-config - - util-linux - - file + - libexpat + - perl +- name: intltool + repo: upstream:intltool + ref: 12f04c88be9ff8a578d8fd6990ee2448c66dc5f4 + unpetrify-ref: baserock/morph + build-system: autotools + build-depends: + - XML-Parser + - autoconf + - automake + - perl +- name: bash + morph: strata/core/bash.morph + repo: upstream:bash + ref: 3590145af6f1c9fa321dff231f69ae696e7e740b + unpetrify-ref: baserock/bash-4.3-patch-27 +- name: cmake + morph: strata/core/cmake.morph + repo: upstream:cmake + ref: 732d8a467ab8a295b1bbf580f865980f8a1a9b29 + unpetrify-ref: v3.2.1 +- name: cython + repo: upstream:cython + ref: 4dd8e762fa51d01775506fbbc102c45dbcea065d + unpetrify-ref: 0.22 + build-system: python-distutils + build-depends: + - python3 +- name: gperf + morph: strata/core/gperf.morph + repo: upstream:gperf + ref: 5094e4a539adf845111013f82c2c4fcaec637983 + unpetrify-ref: baserock/morph +- name: bc + repo: upstream:bc-tarball + ref: 0956d119432ff6a2e85bae1fa336df799cad70b0 + unpetrify-ref: baserock/morph + build-system: autotools + build-depends: + - flex + - texinfo-tarball +- name: libseccomp + repo: upstream:libseccomp + ref: 7932b4fa24c1add0d7a315de8387d216334fbcf7 + unpetrify-ref: v2.2.3 + build-system: autotools + build-depends: + - autoconf + - automake + - libtool diff --git a/strata/core/bison.morph b/strata/core/bison.morph index 352f5fcf..7b880cb6 100644 --- a/strata/core/bison.morph +++ b/strata/core/bison.morph @@ -1,6 +1,6 @@ name: bison kind: chunk build-system: autotools -pre-configure-commands: -- echo "3.0.2" > .tarball-version +configure-commands: - sh bootstrap --skip-po --no-git --gnulib-srcdir=gnulib +- ./configure --prefix="$PREFIX" diff --git a/strata/core/ca-certificates.morph b/strata/core/ca-certificates.morph index 5bdb18ea..0497b283 100644 --- a/strata/core/ca-certificates.morph +++ b/strata/core/ca-certificates.morph @@ -4,19 +4,22 @@ build-system: manual build-commands: - make install-commands: +# +# ca-certificates makefile does not properly take responsibility +# for creating the paths it installs to +# - mkdir -p "$DESTDIR"/usr/share/ca-certificates - mkdir -p "$DESTDIR"/usr/sbin - make DESTDIR="$DESTDIR" install - mkdir "$DESTDIR"/etc +# +# We create the config with all certificates provided +# by the debian package enabled. Some systems may want +# to override the ca-certificates.conf file. +# - | cd "$DESTDIR"/usr/share/ca-certificates find * -type f > "$DESTDIR"/etc/ca-certificates.conf -- | - export CERTSCONF="$DESTDIR/etc/ca-certificates.conf" - export CERTSDIR="$DESTDIR/usr/share/ca-certificates" - export ETCCERTSDIR="$DESTDIR/etc/ssl/certs" - mkdir -p "$ETCCERTSDIR" - ./sbin/update-ca-certificates system-integration: ca-certificates-misc: 00-update-ca-certs: diff --git a/strata/core/curl.morph b/strata/core/curl.morph index e245688c..d445ee00 100644 --- a/strata/core/curl.morph +++ b/strata/core/curl.morph @@ -1,8 +1,14 @@ name: curl kind: chunk configure-commands: +# +# Curl must be configured --with-ca-bundle in order to find the +# correct certificate bundle at runtime, which is later generated +# by update-ca-certificates. Other applications such as git, rely +# on curl knowing the default location of the certs. +# - ./buildconf -- ./configure --disable-manual --prefix="$PREFIX" +- ./configure --disable-manual --prefix="$PREFIX" --with-ca-bundle=/etc/ssl/certs/ca-certificates.crt build-commands: - make install-commands: diff --git a/strata/core/e2fsprogs.morph b/strata/core/e2fsprogs.morph index 55ac486c..6f32ad38 100644 --- a/strata/core/e2fsprogs.morph +++ b/strata/core/e2fsprogs.morph @@ -9,6 +9,11 @@ configure-commands: - | ./configure --prefix="$PREFIX" --sysconfdir=/etc \ --disable-libuuid --disable-uuidd --disable-libblkid +build-commands: +# Without this, the static archive libcom_err is generated without +# position independant code; later when samba tries to create a shared +# library linking to this archive, we get errors. +- make CFLAGS="-g -O2 -DHAVE_CONFIG_H -fPIC" install-commands: # e2fsprogs also includes tools that are provided by util-linux, so we # need to selectively exclude them. Removing them directly from DESTDIR diff --git a/strata/core/git.morph b/strata/core/git-minimal.morph index 765f4a5c..8b562ef6 100644 --- a/strata/core/git.morph +++ b/strata/core/git-minimal.morph @@ -1,4 +1,4 @@ -name: git +name: git-minimal kind: chunk build-system: autotools pre-configure-commands: diff --git a/strata/core/libtool.morph b/strata/core/libtool.morph index d4465c31..04263ac9 100644 --- a/strata/core/libtool.morph +++ b/strata/core/libtool.morph @@ -2,5 +2,4 @@ name: libtool kind: chunk build-system: autotools pre-configure-commands: -- echo "2.4.6" > .tarball-version - ./bootstrap diff --git a/strata/core/linux-pam.morph b/strata/core/linux-pam.morph index 71ad98e9..e6cbf642 100644 --- a/strata/core/linux-pam.morph +++ b/strata/core/linux-pam.morph @@ -6,4 +6,4 @@ pre-configure-commands: configure-commands: # libdir has to be specified or it'll go into lib64. It has to be /lib because # systemd installs its pam library into /lib/security. -- ./configure --prefix="$PREFIX" --libdir="/lib" +- ./configure --prefix="$PREFIX" --sysconfdir=/etc --libdir="/lib" diff --git a/strata/core/patch.morph b/strata/core/patch.morph index 48c9c437..b7f146ef 100644 --- a/strata/core/patch.morph +++ b/strata/core/patch.morph @@ -2,5 +2,4 @@ name: patch kind: chunk build-system: autotools pre-configure-commands: -- echo "2.7.1" > .tarball-version - ./bootstrap --skip-po diff --git a/strata/core/python-setuptools.morph b/strata/core/python-setuptools.morph deleted file mode 100644 index fa436c60..00000000 --- a/strata/core/python-setuptools.morph +++ /dev/null @@ -1,6 +0,0 @@ -name: python-setuptools -kind: chunk -build-commands: -- python setup.py build -install-commands: -- python setup.py install --prefix=/usr --root "$DESTDIR" diff --git a/strata/core/python3.morph b/strata/core/python3.morph new file mode 100644 index 00000000..0d730bc9 --- /dev/null +++ b/strata/core/python3.morph @@ -0,0 +1,13 @@ +name: python3 +kind: chunk +build-system: autotools +configure-commands: +- | + ./configure --prefix="$PREFIX" \ + --sysconfdir=/etc \ + --enable-shared \ + --with-system-expat \ + --with-system-ffi +post-install-commands: +- test -x "$DESTDIR"/"$PREFIX"/bin/python || ln -s python3.4 "$DESTDIR"/"$PREFIX"/bin/python +- test -x "$DESTDIR"/"$PREFIX"/bin/python3 || ln -s python3.4 "$DESTDIR"/"$PREFIX"/bin/python3 diff --git a/strata/core/readline.morph b/strata/core/readline.morph index 511e124c..08c9586c 100644 --- a/strata/core/readline.morph +++ b/strata/core/readline.morph @@ -4,3 +4,5 @@ build-system: autotools pre-configure-commands: - cp /usr/share/automake*/config.guess support - cp /usr/share/automake*/config.sub support +build-commands: +- make SHLIB_LIBS=-lncurses diff --git a/strata/core/util-linux.morph b/strata/core/util-linux.morph index 290283d1..1ec7f8e2 100644 --- a/strata/core/util-linux.morph +++ b/strata/core/util-linux.morph @@ -2,7 +2,6 @@ name: util-linux kind: chunk build-system: autotools pre-configure-commands: -- echo "2.26.1" > .tarball-version - ./autogen.sh configure-commands: # Installing to /bin so that they overwrite busybox login. diff --git a/strata/coreutils-common/coreutils.morph b/strata/coreutils-common/coreutils.morph index 19542d79..3071cb9e 100644 --- a/strata/coreutils-common/coreutils.morph +++ b/strata/coreutils-common/coreutils.morph @@ -1,9 +1,10 @@ name: coreutils kind: chunk build-system: autotools -configure-commands: +pre-configure-commands: - sed -i -e '/^buildreq="/,/^"/{/rsync/d}' bootstrap.conf - bash bootstrap --skip-po --no-git --gnulib-srcdir=gnulib +configure-commands: - FORCE_UNSAFE_CONFIGURE=1 ./configure --prefix="$PREFIX" --disable-nls build-commands: - make WERROR_CFLAGS= diff --git a/strata/cross-bootstrap.morph b/strata/cross-bootstrap.morph index ffed2e66..9248101a 100644 --- a/strata/cross-bootstrap.morph +++ b/strata/cross-bootstrap.morph @@ -3,7 +3,7 @@ kind: stratum description: The minimal development tools to build a baserock devel system build-depends: - morph: strata/core.morph -- morph: strata/python-core.morph +- morph: strata/python2-core.morph chunks: - name: groff morph: strata/cross-bootstrap/groff.morph @@ -21,6 +21,7 @@ chunks: repo: upstream:linux-user-chroot ref: d25cc110f69e6e71a95b4ac532dcfc5423d4a16b unpetrify-ref: baserock/morph + build-system: autotools - name: rsync morph: strata/cross-bootstrap/rsync.morph repo: upstream:rsync diff --git a/strata/cross-tools.morph b/strata/cross-tools.morph index 36a82808..795d3936 100644 --- a/strata/cross-tools.morph +++ b/strata/cross-tools.morph @@ -8,3 +8,4 @@ chunks: repo: upstream:patchelf ref: 21a85cc1c63cf3ef060ece59cdd82455e2884703 unpetrify-ref: baserock/morph + build-system: autotools diff --git a/strata/cxmanage.morph b/strata/cxmanage.morph index 326f7a59..adc9faba 100644 --- a/strata/cxmanage.morph +++ b/strata/cxmanage.morph @@ -8,6 +8,7 @@ chunks: repo: upstream:ipmitool ref: 830d5a3787b265e5dde154d2f0e08b10ae9a7bcd unpetrify-ref: baserock/morph + build-system: autotools - name: pexpect morph: strata/cxmanage/pexpect.morph repo: upstream:pexpect @@ -17,14 +18,17 @@ chunks: repo: upstream:pyipmi ref: bb7dba84578c05ba87db3c4186a2989c89e4e519 unpetrify-ref: baserock/morph + build-system: python-distutils - name: tftpy repo: upstream:tftpy ref: f3d2fc4c62c1e64dd49adfaf8e65097eb8ea307b unpetrify-ref: baserock/morph + build-system: python-distutils - name: cxmanage repo: upstream:cxmanage ref: 54116d3c486ed7aa49f284e4cad9e6e7c293bea6 unpetrify-ref: baserock/morph + build-system: python-distutils build-depends: - ipmitool - pexpect diff --git a/strata/databases.morph b/strata/databases.morph index 89aa996e..444cca9a 100644 --- a/strata/databases.morph +++ b/strata/databases.morph @@ -4,12 +4,13 @@ description: some popular databases and some utils related to databases build-depends: - morph: strata/tools.morph - morph: strata/nfs.morph -- morph: strata/python-core.morph +- morph: strata/python2-core.morph chunks: - name: postgresql repo: upstream:postgresql ref: d4f8dde3c1c2c90c723ab550e7f449fc75599316 unpetrify-ref: REL9_3_4 + build-system: autotools - name: redis morph: strata/databases/redis.morph repo: upstream:redis @@ -24,9 +25,11 @@ chunks: repo: upstream:python-packages/psycopg2 ref: 00cafbe85bb82d85cbfe0f062a73c562433b5bc8 unpetrify-ref: 2.5.4 + build-system: python-distutils build-depends: - postgresql - name: python-memcached repo: upstream:python-packages/python-memcached ref: 156ee975ff6e5c69e1d6c58b09bedf03c182c5db unpetrify-ref: master + build-system: python-distutils diff --git a/strata/devtools.morph b/strata/devtools.morph index 6b55e2f2..ae50096b 100644 --- a/strata/devtools.morph +++ b/strata/devtools.morph @@ -7,7 +7,8 @@ description: | stratum) build-depends: - morph: strata/core.morph -- morph: strata/python-core.morph +- morph: strata/python2-core.morph +- morph: strata/docutils.morph chunks: - name: nano morph: strata/devtools/nano.morph @@ -23,6 +24,7 @@ chunks: repo: upstream:pv ref: d6ce7cfec684fa72d7a919d7b1aa817a0ca6102a unpetrify-ref: baserock/morph + build-system: autotools - name: screen morph: strata/devtools/screen.morph repo: upstream:screen @@ -32,12 +34,24 @@ chunks: repo: upstream:less ref: 09a405d8f652b56944c93ebf5c673cdfe5319b04 unpetrify-ref: baserock/morph + build-system: autotools - name: git-review repo: upstream:git-review ref: 79262a52301c146a6b60d09a828661a83a5f5ba7 unpetrify-ref: master + build-system: python-distutils - name: wget morph: strata/devtools/wget.morph repo: upstream:wget ref: 71d79f4f3043cf4ca3b2fb7f5328eae725c1293f unpetrify-ref: baserock/v1.16.3 +- name: git + morph: strata/devtools/git.morph + repo: upstream:git + ref: 9874fca7122563e28d699a911404fc49d2a24f1c + unpetrify-ref: v2.3.0 +- name: iotop + repo: upstream:iotop + ref: 59e2537794d91c1375d391293f8fd89ca8b794a8 + unpetrify-ref: iotop-0.6 + build-system: python-distutils diff --git a/strata/devtools/git.morph b/strata/devtools/git.morph new file mode 100644 index 00000000..6ca079a5 --- /dev/null +++ b/strata/devtools/git.morph @@ -0,0 +1,9 @@ +name: git +kind: chunk +build-system: autotools +pre-configure-commands: +- make configure +build-commands: +- make all doc +install-commands: +- make install install-doc diff --git a/strata/django.morph b/strata/django.morph index 8ae63801..27c1c662 100644 --- a/strata/django.morph +++ b/strata/django.morph @@ -3,30 +3,35 @@ kind: stratum description: Stratum with Django and its plugins and dependencies. build-depends: - morph: strata/foundation.morph -- morph: strata/python-core.morph +- morph: strata/python2-core.morph chunks: - name: django repo: upstream:python-packages/django ref: 811508b0512d3fa6b2328f8647fbf9eace68eceb unpetrify-ref: 1.6.8 + build-system: python-distutils - name: django-appconf repo: upstream:python-packages/django-appconf ref: 0c9835f95b44db1b3eb1a9409f95a3ecd63b8ff5 unpetrify-ref: 0.6 + build-system: python-distutils - name: django-compressor repo: upstream:python-packages/django-compressor ref: e747dce3d7e04fe595bbfed54f9554c2725eb757 unpetrify-ref: 1.4 + build-system: python-distutils build-depends: - django-appconf - name: pyscss repo: upstream:python-packages/pyscss ref: 85e8806e39e840c4402ee813c3e38fefaf9212b4 unpetrify-ref: 1.2.1 + build-system: python-distutils - name: django-pyscss repo: upstream:python-packages/django-pyscss ref: 665270b54eea5de5aca379a78673b411ed6b1f04 unpetrify-ref: v1.0.6 + build-system: python-distutils build-depends: - django - pyscss diff --git a/strata/docutils.morph b/strata/docutils.morph index 6c5ac67b..e76cc7a2 100644 --- a/strata/docutils.morph +++ b/strata/docutils.morph @@ -2,7 +2,7 @@ name: docutils kind: stratum description: Stuff for generating documentation build-depends: -- morph: strata/core.morph +- morph: strata/python2-core.morph chunks: - name: xml-catalog morph: strata/docutils/xml-catalog.morph @@ -38,6 +38,7 @@ chunks: repo: upstream:asciidoc ref: d3a6df0caa94edaf8180bd71bf2fc68390f56520 unpetrify-ref: 8.6.9 + build-system: autotools build-depends: - docbook-xml - docbook-xsl @@ -45,6 +46,7 @@ chunks: repo: upstream:xmlto-tarball ref: 6a590aba95cbcce0f184381fb19d16558e56832d unpetrify-ref: xmlto-0.0.26 + build-system: autotools build-depends: - docbook-xml - docbook-xsl diff --git a/strata/docutils/docbook-xml.morph b/strata/docutils/docbook-xml.morph index f18acaba..91233b6d 100644 --- a/strata/docutils/docbook-xml.morph +++ b/strata/docutils/docbook-xml.morph @@ -5,100 +5,100 @@ install-commands: - install -v -d -m755 "$DESTDIR$PREFIX/share/xml/docbook/xml-dtd-4.5" - install -v -d -m755 "$DESTDIR/etc/xml" - | - cp -v -af docbook.cat *.dtd ent/ *.mod \ - "$DESTDIR$PREFIX/share/xml/docbook/xml-dtd-4.5" + cp -v -af docbook.cat *.dtd ent/ *.mod \ + "$DESTDIR$PREFIX/share/xml/docbook/xml-dtd-4.5" post-install-commands: - | - # Create (or update) and populate the "$DESTDIR/etc/xml/docbook" catalog file - if [ ! -e /etc/xml/docbook ]; then - xmlcatalog --noout --create "$DESTDIR/etc/xml/docbook" - else - # Copy the existing catalog so we can update it - cp /etc/xml/docbook "$DESTDIR/etc/xml/docbook" - fi + # Create (or update) and populate the "$DESTDIR/etc/xml/docbook" catalog file + if [ ! -e /etc/xml/docbook ]; then + xmlcatalog --noout --create "$DESTDIR/etc/xml/docbook" + else + # Copy the existing catalog so we can update it + cp /etc/xml/docbook "$DESTDIR/etc/xml/docbook" + fi - | - xmlcatalog --noout --add "public" \ - "-//OASIS//DTD DocBook XML V4.5//EN" \ - "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" \ - "$DESTDIR/etc/xml/docbook" -- | - xmlcatalog --noout --add "public" \ - "-//OASIS//DTD DocBook XML CALS Table Model V4.5//EN" \ - "file:///usr/share/xml/docbook/xml-dtd-4.5/calstblx.dtd" \ - "$DESTDIR/etc/xml/docbook" -- | - xmlcatalog --noout --add "public" \ - "-//OASIS//DTD XML Exchange Table Model 19990315//EN" \ - "file:///usr/share/xml/docbook/xml-dtd-4.5/soextblx.dtd" \ - "$DESTDIR/etc/xml/docbook" -- | - xmlcatalog --noout --add "public" \ - "-//OASIS//ELEMENTS DocBook XML Information Pool V4.5//EN" \ - "file:///usr/share/xml/docbook/xml-dtd-4.5/dbpoolx.mod" \ - "$DESTDIR/etc/xml/docbook" -- | - xmlcatalog --noout --add "public" \ - "-//OASIS//ELEMENTS DocBook XML Document Hierarchy V4.5//EN" \ - "file:///usr/share/xml/docbook/xml-dtd-4.5/dbhierx.mod" \ - "$DESTDIR/etc/xml/docbook" -- | - xmlcatalog --noout --add "public" \ - "-//OASIS//ELEMENTS DocBook XML HTML Tables V4.5//EN" \ - "file:///usr/share/xml/docbook/xml-dtd-4.5/htmltblx.mod" \ - "$DESTDIR/etc/xml/docbook" -- | - xmlcatalog --noout --add "public" \ - "-//OASIS//ENTITIES DocBook XML Notations V4.5//EN" \ - "file:///usr/share/xml/docbook/xml-dtd-4.5/dbnotnx.mod" \ - "$DESTDIR/etc/xml/docbook" -- | - xmlcatalog --noout --add "public" \ - "-//OASIS//ENTITIES DocBook XML Character Entities V4.5//EN" \ - "file:///usr/share/xml/docbook/xml-dtd-4.5/dbcentx.mod" \ - "$DESTDIR/etc/xml/docbook" -- | - xmlcatalog --noout --add "public" \ - "-//OASIS//ENTITIES DocBook XML Additional General Entities V4.5//EN" \ "file:///usr/share/xml/docbook/xml-dtd-4.5/dbgenent.mod" \ - "$DESTDIR/etc/xml/docbook" -- | - xmlcatalog --noout --add "rewriteSystem" \ - "http://www.oasis-open.org/docbook/xml/4.5" \ - "file:///usr/share/xml/docbook/xml-dtd-4.5" \ - "$DESTDIR/etc/xml/docbook" -- | - xmlcatalog --noout --add "rewriteURI" \ - "http://www.oasis-open.org/docbook/xml/4.5" \ - "file:///usr/share/xml/docbook/xml-dtd-4.5" \ - "$DESTDIR/etc/xml/docbook" + xmlcatalog --noout --add "public" \ + "-//OASIS//DTD DocBook XML V4.5//EN" \ + "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" \ + "$DESTDIR/etc/xml/docbook" +- | + xmlcatalog --noout --add "public" \ + "-//OASIS//DTD DocBook XML CALS Table Model V4.5//EN" \ + "file:///usr/share/xml/docbook/xml-dtd-4.5/calstblx.dtd" \ + "$DESTDIR/etc/xml/docbook" +- | + xmlcatalog --noout --add "public" \ + "-//OASIS//DTD XML Exchange Table Model 19990315//EN" \ + "file:///usr/share/xml/docbook/xml-dtd-4.5/soextblx.dtd" \ + "$DESTDIR/etc/xml/docbook" +- | + xmlcatalog --noout --add "public" \ + "-//OASIS//ELEMENTS DocBook XML Information Pool V4.5//EN" \ + "file:///usr/share/xml/docbook/xml-dtd-4.5/dbpoolx.mod" \ + "$DESTDIR/etc/xml/docbook" +- | + xmlcatalog --noout --add "public" \ + "-//OASIS//ELEMENTS DocBook XML Document Hierarchy V4.5//EN" \ + "file:///usr/share/xml/docbook/xml-dtd-4.5/dbhierx.mod" \ + "$DESTDIR/etc/xml/docbook" +- | + xmlcatalog --noout --add "public" \ + "-//OASIS//ELEMENTS DocBook XML HTML Tables V4.5//EN" \ + "file:///usr/share/xml/docbook/xml-dtd-4.5/htmltblx.mod" \ + "$DESTDIR/etc/xml/docbook" +- | + xmlcatalog --noout --add "public" \ + "-//OASIS//ENTITIES DocBook XML Notations V4.5//EN" \ + "file:///usr/share/xml/docbook/xml-dtd-4.5/dbnotnx.mod" \ + "$DESTDIR/etc/xml/docbook" +- | + xmlcatalog --noout --add "public" \ + "-//OASIS//ENTITIES DocBook XML Character Entities V4.5//EN" \ + "file:///usr/share/xml/docbook/xml-dtd-4.5/dbcentx.mod" \ + "$DESTDIR/etc/xml/docbook" +- | + xmlcatalog --noout --add "public" \ + "-//OASIS//ENTITIES DocBook XML Additional General Entities V4.5//EN" \ "file:///usr/share/xml/docbook/xml-dtd-4.5/dbgenent.mod" \ + "$DESTDIR/etc/xml/docbook" +- | + xmlcatalog --noout --add "rewriteSystem" \ + "http://www.oasis-open.org/docbook/xml/4.5" \ + "file:///usr/share/xml/docbook/xml-dtd-4.5" \ + "$DESTDIR/etc/xml/docbook" +- | + xmlcatalog --noout --add "rewriteURI" \ + "http://www.oasis-open.org/docbook/xml/4.5" \ + "file:///usr/share/xml/docbook/xml-dtd-4.5" \ + "$DESTDIR/etc/xml/docbook" - | - # Create (or update) and populate the "$DESTDIR/etc/xml/catalog" catalog file - if [ ! -e /etc/xml/catalog ]; then - echo 'Creating new xml catalog' - xmlcatalog --noout --create "$DESTDIR/etc/xml/catalog" - else - # Copy the existing catalog so we can update it - cp /etc/xml/catalog "$DESTDIR/etc/xml/catalog" - fi + # Create (or update) and populate the "$DESTDIR/etc/xml/catalog" catalog file + if [ ! -e /etc/xml/catalog ]; then + echo 'Creating new xml catalog' + xmlcatalog --noout --create "$DESTDIR/etc/xml/catalog" + else + # Copy the existing catalog so we can update it + cp /etc/xml/catalog "$DESTDIR/etc/xml/catalog" + fi - | - xmlcatalog --noout --add "delegatePublic" \ - "-//OASIS//ENTITIES DocBook XML" \ - "file:///etc/xml/docbook" \ - "$DESTDIR/etc/xml/catalog" -- | - xmlcatalog --noout --add "delegatePublic" \ - "-//OASIS//DTD DocBook XML" \ - "file:///etc/xml/docbook" \ - "$DESTDIR/etc/xml/catalog" -- | - xmlcatalog --noout --add "delegateSystem" \ - "http://www.oasis-open.org/docbook/" \ - "file:///etc/xml/docbook" \ - "$DESTDIR/etc/xml/catalog" -- | - xmlcatalog --noout --add "delegateURI" \ - "http://www.oasis-open.org/docbook/" \ - "file:///etc/xml/docbook" \ - "$DESTDIR/etc/xml/catalog" + xmlcatalog --noout --add "delegatePublic" \ + "-//OASIS//ENTITIES DocBook XML" \ + "file:///etc/xml/docbook" \ + "$DESTDIR/etc/xml/catalog" +- | + xmlcatalog --noout --add "delegatePublic" \ + "-//OASIS//DTD DocBook XML" \ + "file:///etc/xml/docbook" \ + "$DESTDIR/etc/xml/catalog" +- | + xmlcatalog --noout --add "delegateSystem" \ + "http://www.oasis-open.org/docbook/" \ + "file:///etc/xml/docbook" \ + "$DESTDIR/etc/xml/catalog" +- | + xmlcatalog --noout --add "delegateURI" \ + "http://www.oasis-open.org/docbook/" \ + "file:///etc/xml/docbook" \ + "$DESTDIR/etc/xml/catalog" diff --git a/strata/enlightenment.morph b/strata/enlightenment.morph index d1637f48..cf3d0e8b 100644 --- a/strata/enlightenment.morph +++ b/strata/enlightenment.morph @@ -13,6 +13,7 @@ chunks: repo: upstream:fribidi ref: c9916f2ab289126a32febcc4754efc73a011fb0c unpetrify-ref: baserock/morph/0.19.6 + build-system: autotools - name: bullet3 morph: strata/enlightenment/bullet3.morph repo: upstream:bullet3 diff --git a/strata/foundation.morph b/strata/foundation.morph index 20166cf7..4e1052b2 100644 --- a/strata/foundation.morph +++ b/strata/foundation.morph @@ -8,6 +8,7 @@ chunks: repo: upstream:bash-completion ref: 3085c7e12179817a02a611016606391295c69942 unpetrify-ref: 2.1 + build-system: autotools - name: groff morph: strata/foundation/groff.morph repo: upstream:groff-git @@ -31,8 +32,8 @@ chunks: - name: dbus-pre morph: strata/foundation/dbus-pre.morph repo: upstream:dbus - ref: 92a2d95a6c4457783dbd663bab27260c328f2248 - unpetrify-ref: baserock/genivi/dbus-1.9.16-1-g92a2d95 + ref: 6b265f7e2ce10e69a07d4a6bc4ec2746fb032135 + unpetrify-ref: baserock/v1.10.0+custom_marshaling - name: libgpg-error morph: strata/foundation/libgpg-error.morph repo: upstream:libgpg-error @@ -41,13 +42,14 @@ chunks: - name: libgcrypt repo: upstream:libgcrypt ref: 412eed473b557ed2172d81d76fa1e1f53c973a67 + build-system: autotools build-depends: - libgpg-error - name: systemd morph: strata/foundation/systemd.morph repo: upstream:systemd - ref: dde8bb32b12c855509777ce52ff59a835155ac78 - unpetrify-ref: v220 + ref: c379f143a5ccdbc94a87cfca0174e7f21fa05f26 + unpetrify-ref: v227 build-depends: - dbus-pre - kmod @@ -56,12 +58,14 @@ chunks: repo: upstream:libusb ref: e11525c66c7dd2db466c8f5785ff0b37d6a99ec9 unpetrify-ref: v1.0.19 + build-system: autotools build-depends: - systemd - name: usbutils repo: upstream:usbutils ref: c37f146eb2c6642c600f1b025a6d56996b0697ff unpetrify-ref: baserock/v008 + build-system: autotools build-depends: - libusb - name: lzo @@ -84,8 +88,8 @@ chunks: - name: dbus morph: strata/foundation/dbus.morph repo: upstream:dbus - ref: 92a2d95a6c4457783dbd663bab27260c328f2248 - unpetrify-ref: baserock/genivi/dbus-1.9.16-1-g92a2d95 + ref: 6b265f7e2ce10e69a07d4a6bc4ec2746fb032135 + unpetrify-ref: baserock/v1.10.0+custom_marshaling build-depends: - systemd - name: openssh diff --git a/strata/foundation/openssh.morph b/strata/foundation/openssh.morph index 6c759cb0..45339156 100644 --- a/strata/foundation/openssh.morph +++ b/strata/foundation/openssh.morph @@ -7,7 +7,8 @@ configure-commands: --prefix="$PREFIX" --sysconfdir=/etc/ssh \ --datadir="$PREFIX/share/sshd" \ --libexecdir="$PREFIX/lib/openssh" \ - --with-privsep-path=/var/lib/sshd + --with-privsep-path=/var/lib/sshd \ + --with-pam build-commands: - make - | diff --git a/strata/foundation/systemd.morph b/strata/foundation/systemd.morph index 26c226fb..04a04c62 100644 --- a/strata/foundation/systemd.morph +++ b/strata/foundation/systemd.morph @@ -1,21 +1,12 @@ name: systemd kind: chunk build-system: autotools -pre-configure-commands: -# systemd prematurely kills the user session. This is a known bug in systemd -# https://bugs.freedesktop.org/show_bug.cgi?id=70593 -- | - cat >> units/user@.service.m4.in <<EOF - KillSignal=SIGCONT - ExecStop=/bin/kill -TERM \$MAINPID - EOF configure-commands: - sh autogen.sh # KILL added because it picks up /usr/bin/kill, which is not installed on # all systems - | - KILL=/bin/kill ./configure --prefix="$PREFIX" --enable-xz --disable-manpages \ - --disable-gudev \ + KILL=/bin/kill ./configure --prefix="$PREFIX" --enable-xz --disable-manpages --enable-compat-libs \ --disable-tests --sysconfdir=/etc --localstatedir=/var \ --libdir="$PREFIX/lib" --libexecdir="$PREFIX/libexec" \ --with-rootprefix= --with-rootlibdir=/lib diff --git a/strata/genivi-demo-platform-libs.morph b/strata/genivi-demo-platform-libs.morph new file mode 100644 index 00000000..598180b2 --- /dev/null +++ b/strata/genivi-demo-platform-libs.morph @@ -0,0 +1,23 @@ +name: genivi-demo-platform-libs +kind: stratum +description: Libraries needed for the GENIVI demo platform. +build-depends: +- morph: strata/foundation.morph +- morph: strata/python-pygobject.morph +- morph: strata/audio-bluetooth.morph +chunks: +- name: boost + morph: strata/genivi-demo-platform-libs/boost.morph + repo: upstream:boost-tarball + ref: ed232fdd34968697a68783b3195b1da4226915b5 + unpetrify-ref: boost_1_57_0 +- name: dbus-c++ + morph: strata/genivi-demo-platform-libs/dbus-c++.morph + repo: upstream:dbus-c++ + ref: 8d351eec25430651acbac014e44ec011fac32d57 + unpetrify-ref: baserock/genivi-demo-platform +- name: dbus-python + repo: upstream:dbus-python + ref: d0d5b5be685dc4c16b21c54335becc87ca4d6f58 + unpetrify-ref: dbus-python-1.2.0 + build-system: autotools diff --git a/strata/genivi-demo-platform-libs/boost.morph b/strata/genivi-demo-platform-libs/boost.morph new file mode 100644 index 00000000..49c0590e --- /dev/null +++ b/strata/genivi-demo-platform-libs/boost.morph @@ -0,0 +1,8 @@ +name: boost +kind: chunk +configure-commands: +- ./bootstrap.sh +build-commands: +- ./b2 $MAKEFLAGS +install-commands: +- ./b2 install --prefix="$DESTDIR$PREFIX" diff --git a/strata/genivi-demo-platform-libs/dbus-c++.morph b/strata/genivi-demo-platform-libs/dbus-c++.morph new file mode 100644 index 00000000..bd805ebf --- /dev/null +++ b/strata/genivi-demo-platform-libs/dbus-c++.morph @@ -0,0 +1,9 @@ +name: dbus-c++ +kind: chunk +description: libdbus-c++ and dbusxx-xml2cpp tool +build-system: autotools +configure-commands: +- autoreconf -ivf +- ./configure --prefix="$PREFIX" --disable-ecore +post-install-commands: +- install tools/dbusxx-xml2cpp "$DESTDIR/$PREFIX"/bin/dbusxx-xml2cpp diff --git a/strata/genivi-demo-platform.morph b/strata/genivi-demo-platform.morph new file mode 100644 index 00000000..b314877c --- /dev/null +++ b/strata/genivi-demo-platform.morph @@ -0,0 +1,49 @@ +name: genivi-demo-platform +kind: stratum +description: Components which make up the GENIVI demo platform. +build-depends: +- morph: strata/genivi-demo-platform-libs.morph +- morph: strata/qt5-tools.morph +- morph: strata/qt5-tools-qtmultimedia.morph +- morph: strata/qt5-tools-qtwebkit.morph +- morph: strata/genivi.morph +- morph: strata/wayland-generic.morph +- morph: strata/weston-genivi.morph +chunks: +- name: browser-poc + morph: strata/genivi-demo-platform/browser-poc.morph + repo: upstream:genivi/browser-poc + ref: d90501f8bd3edcd35eae72efbfb4583ba8f3cdfc + unpetrify-ref: baserock/genivi/genivi-demo-platform +- name: automotive-message-broker + morph: strata/genivi-demo-platform/automotive-message-broker.morph + repo: upstream:automotive-message-broker + ref: 5cac4bd2958ea24ac6913be5baa0dfcda6466089 + unpetrify-ref: "0.14" +- name: audiomanager-poc + morph: strata/genivi-demo-platform/audiomanager-poc.morph + repo: upstream:audiomanager + ref: bb65a4d0a18667baa64e5ba40104dc2cda06b299 + unpetrify-ref: baserock/genivi/genivi-demo-platform +- name: navit + morph: strata/genivi-demo-platform/navit.morph + repo: upstream:navit-svn + ref: 358812af2c27c4abe324beb205e6d156b96fb1ea + unpetrify-ref: master +- name: audiomanager@gdp + morph: strata/genivi-demo-platform/audiomanager@gdp.morph + repo: upstream:audiomanager + ref: ba709ee7d4f9f81af638a3d3c640b7152bbe32bc + unpetrify-ref: baserock/genivi/6.1-3-gba709ee-gdp +- name: audiomanagerdemo + repo: upstream:genivi/audiomanagerdemo + ref: 30b7817bb5c2de17c725d6624d073092d3a821c0 + unpetrify-ref: master + build-system: qmake + build-depends: + - audiomanager@gdp +- name: genivi-demo-platform-hmi + morph: strata/genivi-demo-platform/genivi-demo-platform-hmi.morph + repo: upstream:genivi/genivi-demo-platform-hmi + ref: 253e30329f1d22c859e07150533702c2d3f986d5 + unpetrify-ref: baserock/genivi/gdp-0.1 diff --git a/strata/genivi-demo-platform/audiomanager-poc.morph b/strata/genivi-demo-platform/audiomanager-poc.morph new file mode 100644 index 00000000..6974705b --- /dev/null +++ b/strata/genivi-demo-platform/audiomanager-poc.morph @@ -0,0 +1,10 @@ +name: audiomanager-poc +kind: chunk +pre-configure-commands: +- sed 's:/opt/:/usr/lib/:g' $(git grep -l "/opt/") +configure-commands: +- cd AudioManagerPoC && qmake -makefile +build-commands: +- cd AudioManagerPoC && make +install-commands: +- cd AudioManagerPoC && make install INSTALL_ROOT="$DESTDIR" diff --git a/strata/genivi-demo-platform/audiomanager@gdp.morph b/strata/genivi-demo-platform/audiomanager@gdp.morph new file mode 100644 index 00000000..d77d0e68 --- /dev/null +++ b/strata/genivi-demo-platform/audiomanager@gdp.morph @@ -0,0 +1,14 @@ +name: audiomanager@gdp +kind: chunk +configure-commands: +- | + cmake -DWITH_PULSE_ROUTING_PLUGIN=ON \ + -DWITH_PULSE_CONTROL_PLUGIN=ON \ + -DWITH_ENABLED_IPC=DBUS \ + -DWITH_DATABASE_STORAGE=OFF \ + -DWITH_DLT=OFF \ + -DCMAKE_INSTALL_PREFIX="$PREFIX" +build-commands: +- make +install-commands: +- make DESTDIR="$DESTDIR" install diff --git a/strata/genivi-demo-platform/automotive-message-broker.morph b/strata/genivi-demo-platform/automotive-message-broker.morph new file mode 100644 index 00000000..2516cf29 --- /dev/null +++ b/strata/genivi-demo-platform/automotive-message-broker.morph @@ -0,0 +1,20 @@ +name: automotive-message-broker +kind: chunk +description: The GENIVI Automotive Message Broker +build-system: cmake +post-install-commands: +- mkdir -p "$DESTDIR/usr/lib/systemd/system" +- | + cat >"$DESTDIR/usr/lib/systemd/system/ambd.service" <<EOF + [Unit] + Description=Automotive Message Broker + After=syslog.target + + [Service] + Type=dbus + BusName=org.automotive.message.broker + ExecStart=/usr/bin/ambd + + [Install] + WantedBy=multi-user.target + EOF diff --git a/strata/genivi-demo-platform/browser-poc.morph b/strata/genivi-demo-platform/browser-poc.morph new file mode 100644 index 00000000..1ca23d40 --- /dev/null +++ b/strata/genivi-demo-platform/browser-poc.morph @@ -0,0 +1,29 @@ +name: browser-poc +kind: chunk +description: The GENIVI browser proof-of-concept for the GENIVI Demo Platform. +configure-commands: +- qmake -d -r browser-poc.pro +build-commands: +- make all +install-commands: +- make INSTALL_ROOT="$DESTDIR" install +- mkdir -p "$DESTDIR/usr/lib/systemd/user" +- | + cat >"$DESTDIR/usr/lib/systemd/user/browser.service" <<EOF + [Unit] + Description=Genivi Browser PoC service + Requires=dbus.service + + [Service] + ExecStart=/usr/lib/browser-poc/browser/browser + EOF +- | + cat >"$DESTDIR/usr/lib/systemd/user/demoui.service" <<EOF + [Unit] + Description=Genivi Browser PoC demoui + Requires=browser.service + + [Service] + Environment=LD_PRELOAD=/usr/lib/libEGL.so + ExecStart=/usr/lib/browser-poc/demoui/demoui + EOF diff --git a/strata/genivi-demo-platform/genivi-demo-platform-hmi.morph b/strata/genivi-demo-platform/genivi-demo-platform-hmi.morph new file mode 100644 index 00000000..ae3d645a --- /dev/null +++ b/strata/genivi-demo-platform/genivi-demo-platform-hmi.morph @@ -0,0 +1,137 @@ +name: genivi-demo-platform-hmi +kind: chunk +pre-configure-commands: +- | + sed -i 's/sd_journal_print(LOG_DEBUG,/printf("DEBUG: "/' $(find . -name '*.cpp' -o -name '*.h') +- | + sed -i 's/sd_journal_print(LOG_INFO,/printf("INFO: "/' $(find . -name '*.cpp' -o -name '*.h') +- | + sed -i 's/sd_journal_print(LOG_ERR,/printf("ERR: "/' $(find . -name '*.cpp' -o -name '*.h') +configure-commands: +- autoreconf -vfi && ./configure --prefix="$PREFIX" +- cd app/gdp-hmi-background && qmake +- cd app/gdp-hmi-launcher2 && qmake +- cd app/gdp-hmi-panel && qmake +- cd app/qml-example && qmake +build-commands: +- make +- cd app/gdp-hmi-background && make +- cd app/gdp-hmi-launcher2 && make +- cd app/gdp-hmi-panel && make +- cd app/qml-example && make +install-commands: +- make DESTDIR="$DESTDIR" install +- cd app/gdp-hmi-background && make INSTALL_ROOT="$DESTDIR" install +- cd app/gdp-hmi-launcher2 && make INSTALL_ROOT="$DESTDIR" install +- cd app/gdp-hmi-panel && make INSTALL_ROOT="$DESTDIR" install +- cd app/qml-example && make INSTALL_ROOT="$DESTDIR" install +- mkdir -p "$DESTDIR"/usr/share/gdp +- cp -a app/gdp-hmi-background/assets/* "$DESTDIR"/usr/share/gdp/ +- cp -a app/gdp-hmi-launcher2/content/images/* "$DESTDIR"/usr/share/gdp/ +- cp -a app/gdp-hmi-panel/assets/* "$DESTDIR"/usr/share/gdp/ +- mkdir -p "$DESTDIR/usr/lib/systemd/user" +- mkdir -p "$DESTDIR/usr/lib/systemd/user/default.target.wants" +- | + cat >"$DESTDIR/usr/lib/systemd/user/gdp-hmi-launcher2.service" <<EOF + [Unit] + Description=GENIVI Demo Platform HMI - Launcher2 + Requires=gdp-hmi-controller.service + + [Service] + Environment=LD_PRELOAD=/usr/lib/libEGL.so + ExecStart=/usr/bin/gdp-hmi-launcher2 + + [Install] + WantedBy=default.target + EOF +- cd "$DESTDIR/usr/lib/systemd/user/default.target.wants" && ln -s ../gdp-hmi-launcher2.service . +- | + cat >"$DESTDIR/usr/lib/systemd/user/gdp-hmi-background.service" <<EOF + [Unit] + Description=GENIVI Demo Platform HMI - Background + Requires=gdp-hmi-controller.service + After=gdp-hmi-controller.service + + [Service] + Environment=LD_PRELOAD=/usr/lib/libEGL.so + ExecStart=/usr/bin/gdp-hmi-background + + [Install] + WantedBy=default.target + EOF +- cd "$DESTDIR/usr/lib/systemd/user/default.target.wants" && ln -s ../gdp-hmi-background.service . +- | + cat >"$DESTDIR/usr/lib/systemd/user/gdp-hmi-controller.service" <<EOF + [Unit] + Description=GENIVI Demo Platform HMI - Controller + Requires=dbus.service + After=dbus.service weston.service + + [Service] + ExecStart=/usr/bin/gdp-hmi-controller + Restart=always + RestartSec=2 + TimeoutStopSec=1 + + [Install] + WantedBy=default.target + EOF +- cd "$DESTDIR/usr/lib/systemd/user/default.target.wants" && ln -s ../gdp-hmi-controller.service . +- | + cat >"$DESTDIR/usr/lib/systemd/user/gdp-hmi-panel.service" <<EOF + [Unit] + Description=GENIVI Demo Platform HMI - Panel + Requires=gdp-hmi-controller.service + After=gdp-hmi-background.service + After=EGLWLMockNavigation.service + After=EGLWLInputEventExample.service + After=demoui.service + After=qml-example.service + + [Service] + Environment=LD_PRELOAD=/usr/lib/libEGL.so + ExecStart=/usr/bin/gdp-hmi-panel + + [Install] + WantedBy=default.target + EOF +- mkdir -p "$DESTDIR/usr/lib/systemd/user/EGLWLMockNavigation.service.wants" +- cd "$DESTDIR/usr/lib/systemd/user/EGLWLMockNavigation.service.wants" && ln -s ../gdp-hmi-panel.service . +- mkdir -p "$DESTDIR/usr/lib/systemd/user/EGLWLInputEventExample.service.wants" +- cd "$DESTDIR/usr/lib/systemd/user/EGLWLInputEventExample.service.wants" && ln -s ../gdp-hmi-panel.service . +- mkdir -p "$DESTDIR/usr/lib/systemd/user/demoui.service.wants" +- cd "$DESTDIR/usr/lib/systemd/user/demoui.service.wants" && ln -s ../gdp-hmi-panel.service . +- mkdir -p "$DESTDIR/usr/lib/systemd/user/qml-example.service.wants" +- cd "$DESTDIR/usr/lib/systemd/user/qml-example.service.wants" && ln -s ../gdp-hmi-panel.service . +- | + cat >"$DESTDIR/usr/lib/systemd/user/EGLWLMockNavigation.service" <<EOF + [Unit] + Description=EGL Wayland Mock Navigation + + [Service] + ExecStart=/usr/bin/EGLWLMockNavigation -surface 10 + EOF +- | + cat > "$DESTDIR/usr/lib/systemd/user/EGLWLInputEventExample.service" <<EOF + [Unit] + Description=EGL Wayland Input Event Example + + [Service] + ExecStart=/usr/bin/EGLWLInputEventExample --surface=5100 + EOF +- | + cat > "$DESTDIR/usr/lib/systemd/user/qml-example.service" <<EOF + [Unit] + Description=Genivi QML Example + + [Service] + ExecStart=/usr/bin/qml-example + EOF +- | + cat > "$DESTDIR/usr/lib/systemd/user/PowerOff.service" <<EOF + [Unit] + Description=HMI poweroff + + [Service] + ExecStart=/bin/systemctl poweroff + EOF diff --git a/strata/genivi-demo-platform/mm-common.morph b/strata/genivi-demo-platform/mm-common.morph new file mode 100644 index 00000000..4f416e7c --- /dev/null +++ b/strata/genivi-demo-platform/mm-common.morph @@ -0,0 +1,7 @@ +name: mm-common +kind: chunk +description: Common build files of the GNOME C++ bindings. +build-system: autotools +configure-commands: +- ./autogen.sh +- ./configure --prefix="$PREFIX" diff --git a/strata/genivi-demo-platform/navit.morph b/strata/genivi-demo-platform/navit.morph new file mode 100644 index 00000000..2bdb09d5 --- /dev/null +++ b/strata/genivi-demo-platform/navit.morph @@ -0,0 +1,5 @@ +name: navit +kind: chunk +build-system: cmake +configure-commands: +- cmake . -DSAMPLE_MAP=n diff --git a/strata/genivi.morph b/strata/genivi.morph index f4d7d600..1d8889fe 100644 --- a/strata/genivi.morph +++ b/strata/genivi.morph @@ -49,7 +49,8 @@ chunks: - name: audiomanager repo: upstream:audiomanager ref: 8725157e248c6706de59a02996f869b6ccdccb13 - unpetrify-ref: "7.0" + unpetrify-ref: '7.0' + build-system: cmake build-depends: - DLT-daemon - googletest @@ -82,6 +83,7 @@ chunks: repo: upstream:node-state-manager ref: 30add4659e002f1df205cc36f71ef3141c10c1fb unpetrify-ref: baserock/systemd_v216 + build-system: autotools build-depends: - DLT-daemon - persistence-client-library @@ -104,6 +106,7 @@ chunks: repo: upstream:genivi/node-health-monitor ref: 61f88bc9fc03c278664e05431ffb5933ff6007f1 unpetrify-ref: baserock/1.3.5 + build-system: autotools build-depends: - node-state-manager - persistence-client-library diff --git a/strata/genivi/persistence-client-library.morph b/strata/genivi/persistence-client-library.morph index 6ea6aef2..196572f2 100644 --- a/strata/genivi/persistence-client-library.morph +++ b/strata/genivi/persistence-client-library.morph @@ -2,5 +2,11 @@ name: persistence-client-library kind: chunk build-system: autotools configure-commands: +# Configure library name. We are supposed to change them in this version of +# persistence-client-library. +# The need of doing this has been fixed upstream in the following commit: +# http://git.projects.genivi.org/?p=persistence/persistence-client-library.git;a=commitdiff;h=6b208bfc268890360fcbd5cede70da5d2f9fb459 +# Once we upgrade we can drop this `sed` +- sed -i 's/libpers_common.so.1/libpers_common.so/' config/pclCustomLibConfigFile.cfg - autoreconf -ivf - ./configure --prefix="$PREFIX" --disable-werror diff --git a/strata/glib-common.morph b/strata/glib-common.morph index 090bdf13..ffdc5b14 100644 --- a/strata/glib-common.morph +++ b/strata/glib-common.morph @@ -2,23 +2,27 @@ name: glib-common kind: stratum description: GLib and dependencies build-depends: -- morph: strata/core.morph +- morph: strata/python2-core.morph chunks: - name: gtk-doc-stub repo: upstream:gtk-doc-stub ref: 58ec0d8593541ef7ae522ce42ebec6f98536c4e0 unpetrify-ref: baserock/morph + build-system: autotools - name: gnome-common repo: upstream:gnome-common ref: 5d61b55e8bea32fe2b52e21682ee4b3719b290c5 unpetrify-ref: 3.14.0 + build-system: autotools - name: glib + morph: strata/glib-common/glib.morph repo: upstream:glib - ref: 966ffb16f6bd54cb3d928a55d00d0eda73592094 - unpetrify-ref: 2.44.0 + ref: d73cd49799444f9045d44a414c7b35f129844504 + unpetrify-ref: 2.46.0 - name: gobject-introspection repo: upstream:gobject-introspection - ref: c0243e116c5e261c262dded9f4d7726a770c5a19 - unpetrify-ref: GOBJECT_INTROSPECTION_1_44_0 + ref: a984a0f57a8ab178762d5942e2d552121edae091 + unpetrify-ref: 1.46.0 + build-system: autotools build-depends: - glib diff --git a/strata/glib-common/glib.morph b/strata/glib-common/glib.morph new file mode 100644 index 00000000..cdfceed2 --- /dev/null +++ b/strata/glib-common/glib.morph @@ -0,0 +1,8 @@ +name: glib +kind: chunk +build-system: autotools +system-integration: + glib-misc: + 01-compile-schemas: + - mkdir -p /usr/share/glib-2.0/schemas + - /usr/bin/glib-compile-schemas /usr/share/glib-2.0/schemas diff --git a/strata/gnome.morph b/strata/gnome.morph new file mode 100644 index 00000000..9ea277a3 --- /dev/null +++ b/strata/gnome.morph @@ -0,0 +1,794 @@ +name: gnome +kind: stratum +description: GNOME stratum +build-depends: +- morph: strata/icu-common.morph +- morph: strata/input-common.morph +- morph: strata/tools.morph +- morph: strata/gtk2.morph +- morph: strata/gtk3.morph +- morph: strata/audio-bluetooth.morph +- morph: strata/libsoup-common.morph +- morph: strata/NetworkManager-common.morph +- morph: strata/multimedia-gstreamer.morph +- morph: strata/network-security.morph +- morph: strata/python3-gobject.morph +- morph: strata/python2-core.morph +- morph: strata/wayland-generic.morph +- morph: strata/x-generic.morph +- morph: strata/ruby.morph +- morph: strata/samba.morph +- morph: strata/cups.morph +chunks: +- name: dconf + morph: strata/gnome/dconf.morph + repo: upstream:dconf + ref: 7c0beccf286a1dbd396fda7d40b438598a6ce7f4 + unpetrify-ref: master +- name: cogl + morph: strata/gnome/cogl.morph + repo: upstream:gnome/cogl + ref: 85e0b084592e6beef2987b02e34a3909f35708e0 + unpetrify-ref: cogl-1.22 +- name: json-glib + repo: upstream:json-glib + ref: bfbc0b48e9256473491755766c079f73bee80724 + unpetrify-ref: master + build-system: autotools +- name: clutter + morph: strata/gnome/clutter.morph + repo: upstream:gnome/clutter + ref: 8e52f8c61ef2192eaf7f2208a922d3530df47d9b + unpetrify-ref: master + build-depends: + - cogl + - json-glib +- name: clutter-gtk + repo: upstream:gnome/clutter-gtk + ref: 56b09d02f71aa38f9496226641850e6ecf14ef70 + unpetrify-ref: 1.6.6 + build-system: autotools + build-depends: + - clutter +- name: gsettings-desktop-schemas + repo: upstream:gnome/gsettings-desktop-schemas + ref: db40812cd79f64c98432efd1b632c5633a27f77e + unpetrify-ref: master + build-system: autotools +- name: itstool + repo: upstream:itstool + ref: 359be5c350fc3d869807f663cee2b028adf1f5d7 + unpetrify-ref: master + build-system: autotools +- name: yelp-xsl + repo: upstream:yelp-xsl + ref: 2dcf168dde754d18152b008473269a803d6e650b + unpetrify-ref: master + build-depends: + - itstool + build-system: autotools +- name: yelp-tools + repo: upstream:yelp-tools + ref: 6df6bf24e385bbc1ac0b800be8a6e878f18a775c + unpetrify-ref: master + build-depends: + - itstool + - yelp-xsl + build-system: autotools +- name: iso-codes + repo: upstream:iso-codes + ref: 18ac112b4b84c8f03743565fde3512a637820761 + unpetrify-ref: master + build-system: autotools +- name: gnome-desktop + repo: upstream:gnome/gnome-desktop + ref: 1dbe40fac0e9924552ce2692ec141e86ce3d5633 + unpetrify-ref: master + build-depends: + - gsettings-desktop-schemas + - iso-codes + - yelp-tools + build-system: autotools +- name: libnotify + repo: upstream:gnome/libnotify + ref: 2f2c5649ef210b1dffeb46cddf062d20e1518ccf + unpetrify-ref: master + build-system: autotools +- name: lcms2 + repo: upstream:lcms2 + ref: ff42eeaf932b64af997681f0eed6be3b67ebeb18 + unpetrify-ref: baserock/gnome + build-system: autotools +- name: gconf + morph: strata/gnome/gconf.morph + repo: upstream:gconf + ref: 4ef012c2a62d9abd759adb3aeb9d3b9cee17f721 + unpetrify-ref: master +- name: ibus + morph: strata/gnome/ibus.morph + repo: upstream:ibus + ref: 1d678673e18e132ed53df32502b779b0a56314d5 + unpetrify-ref: master + build-depends: + - dconf + - gconf + - iso-codes + - libnotify +- name: libhangul + morph: strata/gnome/libhangul.morph + repo: upstream:libhangul + ref: 78e9d8926262db423b4cf9181e1c2cb06a120a9b + unpetrify-ref: libhangul-0.1.0-19-g78e9d89 +- name: ibus-hangul + morph: strata/gnome/ibus-hangul.morph + repo: upstream:ibus-hangul + ref: 44f41ae5178372a7ff0540a4ce7a4944335525df + unpetrify-ref: 1.5.0-13-g44f41ae + build-depends: + - ibus + - libhangul +- name: berkeleydb + morph: strata/gnome/berkeleydb.morph + repo: upstream:berkeleydb + ref: 780b92ada9afcf1d58085a83a0b9e6bc982203d1 + unpetrify-ref: db-6.1.23 +- name: libpinyin + repo: upstream:libpinyin + ref: 2e0c23b3ab6c247dd6a683c716e784a371646af4 + unpetrify-ref: baserock/1.2.91 + build-system: autotools + build-depends: + - berkeleydb +- name: ibus-libpinyin + morph: strata/gnome/ibus-libpinyin.morph + repo: upstream:ibus-libpinyin + ref: 4bb5fc19c0829053acd29619de59a85a73e03676 + unpetrify-ref: 1.7.2-7-g4bb5fc1 + build-depends: + - ibus + - libpinyin +- name: anthy + repo: upstream:anthy + ref: a7a06a7ccfe0af1e134357678b8fa6cf87dff3b0 + unpetrify-ref: anthy-9100h + build-system: autotools +- name: ibus-anthy + morph: strata/gnome/ibus-anthy.morph + repo: upstream:ibus-anthy + ref: 9ba0a2a1e595fbf6e39c50a15814bb6f9e337769 + unpetrify-ref: 1.5.7-6-g9ba0a2a + build-depends: + - ibus + - anthy +- name: libcanberra + repo: upstream:libcanberra + ref: c0620e432650e81062c1967cc669829dbd29b310 + unpetrify-ref: master + build-system: autotools +- name: upower + morph: strata/gnome/upower.morph + repo: upstream:upower + ref: 0825c162d3dc909966b10fecabbc2c1da364c1a6 + unpetrify-ref: master +- name: gusb + repo: upstream:gusb + ref: 0c5eb813279c67607e17dfd99087358d34c6c8f5 + unpetrify-ref: master + build-system: autotools +- name: mozjs17 + morph: strata/gnome/mozjs17.morph + repo: upstream:mozilla/mozjs17 + ref: c8e33aaaba2787d3c94eba00257051400d106e76 + unpetrify-ref: baserock/gnome +- name: polkit + morph: strata/gnome/polkit.morph + repo: upstream:polkit + ref: 5a7e3b76aa45eea43e4bdc403ddd4c6e1a4c6542 + unpetrify-ref: master + build-depends: + - mozjs17 +- name: libatasmart + morph: strata/gnome/libatasmart.morph + repo: upstream:libatasmart + ref: de6258940960443038b4c1651dfda3620075e870 + unpetrify-ref: master +- name: udisks + morph: strata/gnome/udisks.morph + repo: upstream:udisks + ref: 410cab8f3d749ad2660cda3ba38b6aece42bf10f + unpetrify-ref: master + build-depends: + - polkit + - libatasmart +- name: colord + morph: strata/gnome/colord.morph + repo: upstream:colord + ref: e68f251b753297fcd1fc2bb7356588945bd3e69b + unpetrify-ref: baserock/gnome + build-depends: + - gusb + - lcms2 + - polkit +- name: colord-gtk + repo: upstream:colord-gtk + ref: eadca143872288e1300303a771efdaab196900e1 + unpetrify-ref: COLORD_GTK_0_1_26 + build-system: autotools + build-depends: + - colord +- name: geocode-glib + repo: upstream:gnome/geocode-glib + ref: a3e183e40053b4bd0fd0b25a070f60597270397a + unpetrify-ref: master + build-depends: + - json-glib + build-system: autotools +- name: libmbim + repo: upstream:libmbim + ref: 6cf74ebfae1dccf807bb34d88f2cd024d4b14da7 + unpetrify-ref: master + build-system: autotools +- name: libqmi + repo: upstream:libqmi + ref: 97aaa6855d071f64ec2e28df1b9f816da02a3e07 + unpetrify-ref: master + build-system: autotools +- name: ModemManager + morph: strata/gnome/ModemManager.morph + repo: upstream:ModemManager + ref: 0ca68657fbcd5bace3d303a0babe2da292784385 + unpetrify-ref: master + build-depends: + - libmbim + - libqmi + - polkit +- name: geoclue + morph: strata/gnome/geoclue.morph + repo: upstream:geoclue + ref: ae8f7ab2f1e90f61931c652f2f65996c30c79e87 + unpetrify-ref: 2.4.0 + build-depends: + - json-glib + - ModemManager +- name: libgweather + repo: upstream:gnome/libgweather + ref: 5b8aed611f24d03434eed35e438cea213b894b7c + unpetrify-ref: master + build-depends: + - geocode-glib + build-system: autotools +- name: gnome-settings-daemon + morph: strata/gnome/gnome-settings-daemon.morph + repo: upstream:gnome-settings-daemon + ref: 8d4904fb35e8aa8b9b0b135b6026464c8e40d254 + unpetrify-ref: baserock/3.18.0/disable_wacom + build-depends: + - colord + - geoclue + - geocode-glib + - gnome-desktop + - gsettings-desktop-schemas + - ibus + - libcanberra + - libgweather + - libnotify + - lcms2 + - upower +- name: zenity + repo: upstream:zenity + ref: d7135db2bdfdca812c0165f90e4611af9c7c6a50 + unpetrify-ref: master + build-depends: + - yelp-tools + build-system: autotools +- name: mozjs24 + morph: strata/gnome/mozjs24.morph + repo: upstream:mozilla/mozjs24 + ref: 334066c83de6c96320b63663a35d53159158c9b7 + unpetrify-ref: baserock/gnome +- name: gjs + repo: upstream:gjs + ref: 5d480f519e2b7e95cf1fad2f9f1a8e798fd5fe49 + unpetrify-ref: master + build-depends: + - mozjs24 + build-system: autotools +- name: telepathy-glib + morph: strata/gnome/telepathy-glib.morph + repo: upstream:telepathy-glib + ref: d27684c488ceee4f2f54f549738adab0e2e8165d + unpetrify-ref: master +- name: telepathy-logger + morph: strata/gnome/telepathy-logger.morph + repo: upstream:telepathy-logger + ref: 711842911edb15977430c0b6c1803e947619efc3 + unpetrify-ref: master + build-depends: + - telepathy-glib +- name: telepathy-mission-control + repo: upstream:telepathy-mission-control + ref: 84dc7d0fd952a9ef3d200ac5557cdf2daccca145 + unpetrify-ref: telepathy-mission-control-5.16.3 + build-system: autotools + build-depends: + - telepathy-glib +- name: startup-notification + repo: upstream:startup-notification + ref: 07237ff25d6171e1b548118442ddba4259a53ba5 + unpetrify-ref: master + build-system: autotools +- name: libtasn1 + repo: upstream:libtasn1 + ref: 7f3a9c2294cdebd9e63fe007150c181b980865ef + unpetrify-ref: baserock/gnome + build-system: autotools +- name: p11-kit + morph: strata/gnome/p11-kit.morph + repo: upstream:p11-kit + ref: ec9e2450bafa1cda47525b38a28c8f981f43c1e1 + unpetrify-ref: 0.23.1 + build-depends: + - libtasn1 +- name: gcr + repo: upstream:gnome/gcr + ref: 289ba4859fd170285f51e6bbfe91f2aac3b9170d + unpetrify-ref: 3.18.0 + build-depends: + - p11-kit + build-system: autotools +- name: libxkbcommon-x11 + repo: upstream:xorg-lib-libxkbcommon + ref: c43c3c866eb9d52cd8f61e75cbef1c30d07f3a28 + unpetrify-ref: xkbcommon-0.5.0 + build-system: autotools +- name: mutter + morph: strata/gnome/mutter.morph + repo: upstream:mutter + ref: b975676c5ddd9401d4acfc4d0b9317dd8956656b + unpetrify-ref: 3.18.0-25-gb975676 + build-depends: + - clutter + - cogl + - gnome-desktop + - gnome-settings-daemon + - gsettings-desktop-schemas + - libxkbcommon-x11 + - startup-notification + - upower + - zenity +- name: libxklavier + repo: upstream:libxklavier + ref: 65c132a65e90a42e898f07243ef544109ada53c9 + unpetrify-ref: master + build-depends: + - iso-codes + build-system: autotools +- name: m4-common + repo: upstream:m4-common + ref: 4b704704f5e826b73b79ccfddaf215a510c104c4 + unpetrify-ref: baserock/morph + build-system: autotools +- name: libgee + repo: upstream:gnome/libgee + ref: 4301ab58efc217409c588a5527f68990b4e3d220 + unpetrify-ref: master + build-depends: + - m4-common + build-system: autotools +- name: caribou + morph: strata/gnome/caribou.morph + repo: upstream:caribou + ref: e1a7a2488cdf8d0d32f0de67d68a85e9a6ab5fd2 + unpetrify-ref: baserock/CARIBOU_0_4_19-1-ge1a7a24+python3 + build-depends: + - clutter + - libgee + - libxklavier +- name: libsecret + morph: strata/gnome/libsecret.morph + repo: upstream:gnome/libsecret + ref: 4d76cf7dd8e55d93bb58164a1fff38113ba97af5 + unpetrify-ref: master +- name: librest + morph: strata/gnome/librest.morph + repo: upstream:gnome/librest + ref: 08f1fc35e3c77aecedacf08aa510e82c91ac7f2a + unpetrify-ref: 0.7.93 +- name: enchant + repo: upstream:enchant + ref: 6d8b6bb15f09a14c90fb900eb2ecf1172d7cf6cf + unpetrify-ref: master + build-system: autotools +- name: hyphen + repo: upstream:hyphen + ref: 7f28cf7edb54cc1bc4eaa09672e0bc043b1da70b + unpetrify-ref: master + build-system: autotools +- name: WebKitGtk + morph: strata/gnome/WebKitGtk.morph + repo: upstream:WebKitGtk-tarball + ref: e15dd966d523731101f70ccf768bba12435a0208 + unpetrify-ref: webkitgtk-2.10.2 + build-depends: + - enchant + - geoclue + - hyphen + - libnotify + - libsecret +- name: gnome-online-accounts + morph: strata/gnome/gnome-online-accounts.morph + repo: upstream:gnome/gnome-online-accounts + ref: 167ada60a66a0ed851bb65335a46570cf071115a + unpetrify-ref: baserock/3.18.1 + build-depends: + - librest + - telepathy-glib + - WebKitGtk +- name: liboauth + repo: upstream:liboauth + ref: 9ff9d2902caf8a85c5019c11214d73e67053ba69 + unpetrify-ref: liboauth-0.9.7 + build-system: autotools +- name: libgdata + morph: strata/gnome/libgdata.morph + repo: upstream:libgdata + ref: ed52192fcd3cde2c0d7f0ab0d9e300fcdbc373a8 + unpetrify-ref: LIBGDATA_0_17_3-16-ged52192 + build-depends: + - gcr + - gnome-online-accounts + - liboauth + - m4-common +- name: krb5 + morph: strata/gnome/krb5.morph + repo: upstream:krb5 + ref: db2acb6b06e469c6c12476bec68acc7964626523 + unpetrify-ref: master +- name: evolution-data-server + morph: strata/gnome/evolution-data-server.morph + repo: upstream:evolution-data-server + ref: 8d094ef96a89957d353beaa66f0cbaa04cfbfedd + unpetrify-ref: EVOLUTION_DATA_SERVER_3_18_1-11-g8d094ef + build-depends: + - gcr + - gnome-online-accounts + - krb5 + - libgdata + - libgweather + - libsecret +- name: network-manager-applet + repo: upstream:gnome/network-manager-applet + ref: bbcc673af29066cfc6f0e12f04c0dd3f9937fb3a + unpetrify-ref: 0.9.10-beta1-344-gbbcc673 + build-system: autotools + build-depends: + - iso-codes + - libsecret + - libnotify +- name: gnome-shell + morph: strata/gnome/gnome-shell.morph + repo: upstream:gnome/gnome-shell + ref: 4da5b8dd1189e7e628605b2b23efe5db2d88f94b + unpetrify-ref: baserock/3.18.0-71-g4da5b8d + build-depends: + - caribou + - clutter + - evolution-data-server + - gcr + - gjs + - libcanberra + - mutter + - polkit + - startup-notification + - telepathy-glib + - network-manager-applet +- name: gnome-session + morph: strata/gnome/gnome-session.morph + repo: upstream:gnome/gnome-session + ref: 9af8474a027edecf7c73827964fd88bc960266d6 + unpetrify-ref: 3.18.0-3-g9af8474 + build-depends: + - gnome-desktop + - json-glib +- name: d-feet + morph: strata/gnome/d-feet.morph + repo: upstream:gnome/d-feet + ref: a526f5325f179482f915216f7781232899be5600 + unpetrify-ref: master + build-depends: + - yelp-tools +- name: gnome-keyring + morph: strata/gnome/gnome-keyring.morph + repo: upstream:gnome-keyring + ref: b1aee9c01f647f084e6c0ae2b4810c9ec7d0fd0d + unpetrify-ref: 3.18.0 + build-depends: + - gcr +- name: gvfs + morph: strata/gnome/gvfs.morph + repo: upstream:gvfs + ref: d037b5fd56cae878ed7bb5269a40e4bd046551d7 + unpetrify-ref: master + build-depends: + - gcr + - udisks +- name: accountsservice + morph: strata/gnome/accountsservice.morph + repo: upstream:accountsservice + ref: 36b424b4aad91aaf91eeb6b6285cf550b15fcfeb + unpetrify-ref: master + build-depends: + - polkit +- name: gdm + morph: strata/gnome/gdm.morph + repo: upstream:gdm + ref: 494ec8cee5727c37118994d3864c44f36aa454fc + unpetrify-ref: 3.18.0 + build-depends: + - polkit + - accountsservice + - libcanberra + - dconf +- name: hicolor-icon-theme + morph: strata/gnome/hicolor-icon-theme.morph + repo: upstream:hicolor-icon-theme + ref: 5954bd6c123aa31c8f35b83d70b73e1f6dcf34b3 + unpetrify-ref: master +- name: gnome-themes-standard + morph: strata/gnome/gnome-themes-standard.morph + repo: upstream:gnome-themes-standard + ref: 4058c3bced2173c8e6f2a22953327dcc2023e82d + unpetrify-ref: master + build-depends: + - hicolor-icon-theme +- name: adwaita-icon-theme + morph: strata/gnome/adwaita-icon-theme.morph + repo: upstream:gnome/adwaita-icon-theme + ref: 5e469ae6e664cb0808b6ce9fcfd7bd2ac6fc4216 + unpetrify-ref: gnome-3.18 +- name: gnome-backgrounds + repo: upstream:gnome/gnome-backgrounds + ref: e68462edd35ae3edb4311df90dc4d1a3cdcb175f + unpetrify-ref: 3.18.0-2-ge68462e + build-system: autotools +- name: nettle + morph: strata/gnome/nettle.morph + repo: upstream:nettle + ref: 549e2853d6f3fa9cefb099970209c7f5bf5673b7 + unpetrify-ref: nettle_3.1.1_release_20150424 +- name: gnutls + morph: strata/gnome/gnutls.morph + repo: upstream:gnutls + ref: 21fecbde80ae824f85a10a0c23a327c49e4e5fb6 + unpetrify-ref: baserock/gnutls_3_4_6 + build-depends: + - nettle + - libtasn1 + - p11-kit +- name: glib-networking + morph: strata/gnome/glib-networking.morph + repo: upstream:gnome/glib-networking + ref: 32ee55186d7df497e3d402a1940cddfabd9dbc21 + unpetrify-ref: 2.46.0 + build-depends: + - gnutls +- name: cracklib + morph: strata/gnome/cracklib.morph + repo: upstream:cracklib + ref: 1dd5ca2114c0dd478b17e68e38d2c9f7094552cc + unpetrify-ref: cracklib-2.9.6 +- name: libpwquality + morph: strata/gnome/libpwquality.morph + repo: upstream:libpwquality + ref: 24937f6fdcc1673e064c9626407c89f58289957d + unpetrify-ref: libpwquality-1.3.0 + build-depends: + - cracklib +- name: gnome-initial-setup + morph: strata/gnome/gnome-initial-setup.morph + repo: upstream:gnome/gnome-initial-setup + ref: e0b7f968213d26807d00ca5841c03f4a5a4605b2 + unpetrify-ref: 3.19.1-1-ge0b7f96 + build-depends: + - accountsservice + - gdm + - gnome-desktop + - gnome-keyring + - gnome-online-accounts + - ibus + - iso-codes + - krb5 + - libgweather + - libpwquality + - network-manager-applet +- name: vte + morph: strata/gnome/vte.morph + repo: upstream:gnome/vte + ref: aa7120c2e359bb5d6d0b0ec6c1e0eecf0583be03 + unpetrify-ref: 0.43.0 + build-depends: + - gnutls +- name: tracker + repo: upstream:gnome/tracker + ref: ad31f26e3c45dbe3365ff4aaae39269d9210f4a9 + unpetrify-ref: 1.6.0 + build-system: autotools +- name: libexif + repo: upstream:libexif-tarball + ref: 0c6a5fa0d9719a40748d8726b4543f02f70518c1 + unpetrify-ref: libexif-0.6.21 + build-system: autotools +- name: nautilus + morph: strata/gnome/nautilus.morph + repo: upstream:nautilus + ref: 2efab5ea404077bfb09f543ed2acc8e0940d21c9 + unpetrify-ref: baserock/3.18.1 + build-depends: + - vte + - gnome-desktop + - gsettings-desktop-schemas + - libexif + - tracker +- name: desktop-file-utils + repo: upstream:desktop-file-utils + ref: 4944725bddcf5821d53d7d648fc53347ce12cc03 + unpetrify-ref: 0.22 + build-system: autotools +- name: gnome-terminal + morph: strata/gnome/gnome-terminal.morph + repo: upstream:gnome/gnome-terminal + ref: d52e6beb2df7aedd0c98696ae3be4a36b4c8f0f0 + unpetrify-ref: 3.18.1 + build-depends: + - desktop-file-utils + - dconf + - gconf + - gsettings-desktop-schemas + - nautilus + - yelp-tools +- name: gmime + morph: strata/gnome/gmime.morph + repo: upstream:gnome/gmime + ref: 496313fbe956b350c22fa705edbcfdde3d7c9e50 + unpetrify-ref: GMIME_2_6_20-24-g496313f +- name: totem-pl-parser + repo: upstream:gnome/totem-pl-parser + ref: 1be3144e9a6bf183a61c9596165d52bbe405b5cc + unpetrify-ref: V_3_10_5-16-g1be3144 + build-system: autotools + build-depends: + - gmime +- name: libmediaart + morph: strata/gnome/libmediaart.morph + repo: upstream:gnome/libmediaart + ref: 52eb6498c97ce0005186946bc9162d87597abc2c + unpetrify-ref: 1.9.0-8-g52eb649 +- name: grilo + repo: upstream:gnome/grilo + ref: e470c0cd72231d2a86f419a584df3d635bc6b62f + unpetrify-ref: grilo-0.2.14-17-ge470c0c + build-system: autotools + build-depends: + - totem-pl-parser +- name: grilo-plugins + repo: upstream:gnome/grilo-plugins + ref: e23b0fa5f6656d53b977693bf55174bd2ccd172d + unpetrify-ref: grilo-plugins-0.2.16-17-ge23b0fa + build-system: autotools + build-depends: + - gnome-online-accounts + - grilo + - libgdata + - libmediaart + - liboauth + - librest + - m4-common + - totem-pl-parser + - tracker + - yelp-tools +- name: libgtop + repo: upstream:gnome/libgtop + ref: ac2aef0f47fd998555abf18003f4c11ffecbf542 + unpetrify-ref: 2.32.0 + build-system: autotools +- name: libwacom + repo: upstream:linuxwacom/libwacom + ref: c707d0f98c79260cb72b5d2bdded50b4e816e350 + unpetrify-ref: libwacom-0.15 + build-system: autotools +- name: gnome-bluetooth + repo: upstream:gnome/gnome-bluetooth + ref: eb2558d45518f7c23c20fa7b13639f013810494e + unpetrify-ref: GNOMEBT_V_3_18_0 + build-system: autotools + build-depends: + - libcanberra + - libnotify +- name: libarchive + morph: strata/gnome/libarchive.morph + repo: upstream:libarchive + ref: 19f23e191f9d3e1dd2a518735046100419965804 + unpetrify-ref: v3.1.2 +- name: gcab + repo: upstream:gnome/gcab + ref: e57dd3d1ddb0da91df9188c2a98d59d1050ac6cb + unpetrify-ref: v0.6-22-ge57dd3d + build-system: autotools +- name: appstream-glib + repo: upstream:appstream-glib + ref: d3885c325271fee0bed5c5815d41eb788712acb4 + unpetrify-ref: appstream_glib_0_5_0 + # Building 0.5.3 requires absurdly new libsoup + # ref: 2b57a0c407021f2b1efca38eb99a9bf61c1d16b2 + # unpetrify-ref: appstream_glib_0_5_3 + build-system: autotools + build-depends: + - gcab + - libarchive +- name: gnome-color-manager + morph: strata/gnome/gnome-color-manager.morph + repo: upstream:gnome/gnome-color-manager + ref: 8284cb186e0e7c248fc2a2449735fd24b778ec81 + unpetrify-ref: GNOME_COLOR_MANAGER_3_18_0 + build-depends: + - appstream-glib + - colord-gtk + - gnome-desktop + - lcms2 + - libcanberra + - libexif + - vte + - yelp-tools +- name: clutter-gst + repo: upstream:gnome/clutter-gst + ref: 395797827a148809a2be0d968c5bf71a6e9c9299 + unpetrify-ref: 3.0.14 + build-system: autotools + build-depends: + - clutter +- name: cheese + morph: strata/gnome/cheese.morph + repo: upstream:gnome/cheese + ref: 61651e03e8346bd0084da7247269e52e2a42190e + unpetrify-ref: gnome-3-18 + build-depends: + - appstream-glib + - clutter + - clutter-gst + - clutter-gtk + - gnome-desktop + - libcanberra + - yelp-tools +- name: gnome-control-center + morph: strata/gnome/gnome-control-center.morph + repo: upstream:gnome/gnome-control-center + ref: f00c05ba3b3c7aa328d7970b73a784739cef560a + unpetrify-ref: baserock/3.18 + build-depends: + - accountsservice + - cheese + - clutter + - clutter-gtk + - colord + - colord-gtk + - gnome-bluetooth + - gnome-desktop + - gnome-online-accounts + - gnome-settings-daemon + - grilo + - gsettings-desktop-schemas + - ibus + - iso-codes + - krb5 + - libcanberra + - libgtop + - libpwquality + - libwacom + - network-manager-applet +- name: libgnomekbd + repo: upstream:gnome/libgnomekbd + ref: d8ff867e95e548476c68db12ade3a0a4697a24a1 + unpetrify-ref: master + build-system: autotools + build-depends: + - libxklavier diff --git a/strata/gnome/ModemManager.morph b/strata/gnome/ModemManager.morph new file mode 100644 index 00000000..909f6eca --- /dev/null +++ b/strata/gnome/ModemManager.morph @@ -0,0 +1,9 @@ +name: ModemManager +kind: chunk +build-system: autotools +configure-commands: +- ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc +system-integration: + ModemManager-misc: + 00-enable-ModemManager-unit: + - systemctl enable ModemManager diff --git a/strata/gnome/WebKitGtk.morph b/strata/gnome/WebKitGtk.morph new file mode 100644 index 00000000..cbe1577c --- /dev/null +++ b/strata/gnome/WebKitGtk.morph @@ -0,0 +1,5 @@ +name: WebKitGtk +kind: chunk +build-system: cmake +configure-commands: +- cmake -DPORT=GTK -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="$PREFIX" -DCMAKE_INSTALL_LIBDIR=lib diff --git a/strata/gnome/accountsservice.morph b/strata/gnome/accountsservice.morph new file mode 100644 index 00000000..15ba434d --- /dev/null +++ b/strata/gnome/accountsservice.morph @@ -0,0 +1,9 @@ +name: accountsservice +kind: chunk +build-system: autotools +configure-commands: +- ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc --enable-admin-group=adm +system-integration: + accountsservice-misc: + 00-enable-accounts-daemon-unit: + - systemctl enable accounts-daemon diff --git a/strata/gnome/adwaita-icon-theme.morph b/strata/gnome/adwaita-icon-theme.morph new file mode 100644 index 00000000..99ded09c --- /dev/null +++ b/strata/gnome/adwaita-icon-theme.morph @@ -0,0 +1,11 @@ +name: adwaita-icon-theme +kind: chunk +build-system: autotools +configure-commands: +- gdk-pixbuf-query-loaders > loader.cache +- NOCONFIGURE=1 ./autogen.sh +- ./configure --prefix="$PREFIX" --sysconfdir=/etc +build-commands: +- GDK_PIXBUF_MODULE_FILE="$(pwd)/loader.cache" make +install-commands: +- GDK_PIXBUF_MODULE_FILE="$(pwd)/loader.cache" make install DESTDIR="$DESTDIR" diff --git a/strata/gnome/autoconf-archive.morph b/strata/gnome/autoconf-archive.morph new file mode 100644 index 00000000..de05f0aa --- /dev/null +++ b/strata/gnome/autoconf-archive.morph @@ -0,0 +1,5 @@ +name: autoconf-archive +kind: chunk +build-system: autotools +pre-configure-commands: +- ./bootstrap.sh diff --git a/strata/gnome/berkeleydb.morph b/strata/gnome/berkeleydb.morph new file mode 100644 index 00000000..e6238e7a --- /dev/null +++ b/strata/gnome/berkeleydb.morph @@ -0,0 +1,18 @@ +name: berkeleydb +kind: chunk +build-system: autotools +configure-commands: +- | + cd build_unix; + ../dist/configure --prefix="$PREFIX" \ + --enable-compat185 \ + --enable-dbm \ + --enable-cxx +build-commands: +- | + cd build_unix; + make +install-commands: +- | + cd build_unix; + make DESTDIR="$DESTDIR" install diff --git a/strata/gnome/caribou.morph b/strata/gnome/caribou.morph new file mode 100644 index 00000000..14827a98 --- /dev/null +++ b/strata/gnome/caribou.morph @@ -0,0 +1,5 @@ +name: caribou +kind: chunk +build-system: autotools +configure-commands: +- ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc --disable-gtk2-module diff --git a/strata/gnome/cheese.morph b/strata/gnome/cheese.morph new file mode 100644 index 00000000..5e3671fb --- /dev/null +++ b/strata/gnome/cheese.morph @@ -0,0 +1,11 @@ +name: cheese +kind: chunk +build-system: autotools +configure-commands: +- gdk-pixbuf-query-loaders > loader.cache +- NOCONFIGURE=1 ./autogen.sh +- ./configure --prefix="$PREFIX" --sysconfdir=/etc +build-commands: +- GDK_PIXBUF_MODULE_FILE="$(pwd)/loader.cache" make +install-commands: +- GDK_PIXBUF_MODULE_FILE="$(pwd)/loader.cache" make install DESTDIR="$DESTDIR" diff --git a/strata/gnome/clutter.morph b/strata/gnome/clutter.morph new file mode 100644 index 00000000..d454c6e3 --- /dev/null +++ b/strata/gnome/clutter.morph @@ -0,0 +1,6 @@ +name: clutter +kind: chunk +build-system: autotools +configure-commands: +- ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc --enable-wayland-backend --enable-wayland-compositor + --enable-egl-backend --enable-evdev-input --enable-x11-backend diff --git a/strata/gnome/cogl.morph b/strata/gnome/cogl.morph new file mode 100644 index 00000000..8c9dca76 --- /dev/null +++ b/strata/gnome/cogl.morph @@ -0,0 +1,6 @@ +name: cogl +kind: chunk +build-system: autotools +configure-commands: +- ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc --enable-wayland-egl-platform --enable-wayland-egl-server + --enable-kms-egl-platform --enable-xlib-egl-platform --enable-cogl-gst diff --git a/strata/gnome/colord.morph b/strata/gnome/colord.morph new file mode 100644 index 00000000..9a504404 --- /dev/null +++ b/strata/gnome/colord.morph @@ -0,0 +1,5 @@ +name: colord +kind: chunk +build-system: autotools +configure-commands: +- ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc diff --git a/strata/gnome/cracklib.morph b/strata/gnome/cracklib.morph new file mode 100644 index 00000000..6b373cfa --- /dev/null +++ b/strata/gnome/cracklib.morph @@ -0,0 +1,18 @@ +name: cracklib +kind: chunk +build-system: autotools +configure-commands: +# cracklib has it's own autogen.sh script, but uses curl to download config.sub & config.guess, we just skip it +- cd src && autopoint -f && cd m4 && echo EXTRA_DIST = *.m4 > Makefile.am && cd .. && autoreconf -f -i +- cd src && ./configure --prefix="$PREFIX" --sysconfdir=/etc --with-default-dict=/lib/cracklib/pw_dict +build-commands: +- make -C src +- make -C words +install-commands: +- make -C src install +- install -m644 -D words/cracklib-words.gz $DESTDIR$PREFIX/share/dict/cracklib-words.gz +- install -v -m755 -d $DESTDIR/lib/cracklib +system-integration: + cracklib-misc: + 00-cracklib-create-dict: + - create-cracklib-dict /usr/share/dict/cracklib-words.gz diff --git a/strata/gnome/d-feet.morph b/strata/gnome/d-feet.morph new file mode 100644 index 00000000..df74d3e0 --- /dev/null +++ b/strata/gnome/d-feet.morph @@ -0,0 +1,7 @@ +name: d-feet +kind: chunk +build-system: autotools +configure-commands: +# Workaround upstream bug https://bugzilla.gnome.org/show_bug.cgi?id=757769 +- sed -i 's/AM_PATH_PYTHON(\[2\.7\])/AM_PATH_PYTHON(\[3\.1\])/g' configure.ac +- ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc --disable-tests diff --git a/strata/gnome/dconf.morph b/strata/gnome/dconf.morph new file mode 100644 index 00000000..a49efd36 --- /dev/null +++ b/strata/gnome/dconf.morph @@ -0,0 +1,5 @@ +name: dconf +kind: chunk +build-system: autotools +configure-commands: +- ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc --disable-man diff --git a/strata/gnome/evolution-data-server.morph b/strata/gnome/evolution-data-server.morph new file mode 100644 index 00000000..bfa8671a --- /dev/null +++ b/strata/gnome/evolution-data-server.morph @@ -0,0 +1,10 @@ +name: evolution-data-server +kind: chunk +build-system: autotools +configure-commands: +- | + ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc \ + --disable-uoa --with-libdb=no \ + --enable-vala-bindings --with-krb5=yes \ + --with-nss-includes=/usr/include/nss \ + --with-nspr-includes=/usr/include/nspr diff --git a/strata/gnome/gconf.morph b/strata/gnome/gconf.morph new file mode 100644 index 00000000..26930945 --- /dev/null +++ b/strata/gnome/gconf.morph @@ -0,0 +1,5 @@ +name: gconf +kind: chunk +build-system: autotools +configure-commands: +- ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc --disable-orbit --disable-documentation diff --git a/strata/gnome/gdm.morph b/strata/gnome/gdm.morph new file mode 100644 index 00000000..0ac70db2 --- /dev/null +++ b/strata/gnome/gdm.morph @@ -0,0 +1,24 @@ +name: gdm +kind: chunk +build-system: autotools +configure-commands: +- | + # GDM includes a few stock PAM configurations, we choose the LFS flavor + # because of it's simplicity over the others, also it does not require + # selinux modules, however we neet to tweak the config a little after install. + ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc --localstatedir=/var \ + --with-selinux=no --with-plymouth=no \ + --enable-gdm-xsession --with-x --with-default-pam-config=lfs +post-install-commands: +# Instead of following LFS PAM config to the letter, we redirect the includes +# to use the systemd installed all purpose 'system-auth' file +- sed -i 's/system-account/system-auth/g' "$DESTDIR"/etc/pam.d/gdm* +- sed -i 's/system-password/system-auth/g' "$DESTDIR"/etc/pam.d/gdm* +- sed -i 's/system-session/system-auth/g' "$DESTDIR"/etc/pam.d/gdm* +system-integration: + gdm-misc: + 00-add-gdm-user: + - groupadd -g 21 gdm + - useradd -c "GDM Daemon Owner" -d /var/lib/gdm -u 21 -g gdm -s /bin/false gdm + 00-enable-gdm-unit: + - systemctl enable gdm diff --git a/strata/gnome/geoclue.morph b/strata/gnome/geoclue.morph new file mode 100644 index 00000000..3be946bb --- /dev/null +++ b/strata/gnome/geoclue.morph @@ -0,0 +1,13 @@ +name: geoclue +kind: chunk +build-system: autotools +configure-commands: +- | + ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc \ + --disable-nmea-source \ + --with-dbus-service-user=geoclue +system-integration: + geoclue-misc: + 00-add-geoclue-user: + - groupadd geoclue + - useradd -c "GeoClue Owner" -r -g geoclue -s /bin/false geoclue diff --git a/strata/gnome/glib-networking.morph b/strata/gnome/glib-networking.morph new file mode 100644 index 00000000..53380583 --- /dev/null +++ b/strata/gnome/glib-networking.morph @@ -0,0 +1,9 @@ +name: glib-networking +kind: chunk +build-system: autotools +configure-commands: +# +# Tell glib-networking where the system CA certs are found, avoid depending +# on an installed ca-certificates. +# +- ./autogen.sh --prefix="$PREFIX" --with-ca-certificates=/etc/ssl/certs/ca-certificates.crt diff --git a/strata/gnome/gmime.morph b/strata/gnome/gmime.morph new file mode 100644 index 00000000..f71efac4 --- /dev/null +++ b/strata/gnome/gmime.morph @@ -0,0 +1,6 @@ +name: gmime +kind: chunk +build-system: autotools +pre-configure-commands: +# Work around upstream bug: https://bugzilla.gnome.org/show_bug.cgi?id=757720 +- sed -i 's/$(INCLUDES)/$(AM_CPPFLAGS)/g' gmime/Makefile.am diff --git a/strata/gnome/gnome-color-manager.morph b/strata/gnome/gnome-color-manager.morph new file mode 100644 index 00000000..90ed1815 --- /dev/null +++ b/strata/gnome/gnome-color-manager.morph @@ -0,0 +1,7 @@ +name: gnome-color-manager +kind: chunk +build-system: autotools +configure-commands: +# There is no justification to disable EXIV, we were just +# too lazy to integrate EXIV +- ./autogen.sh --prefix="$PREFIX" --disable-exiv diff --git a/strata/gnome/gnome-control-center.morph b/strata/gnome/gnome-control-center.morph new file mode 100644 index 00000000..ec2b6409 --- /dev/null +++ b/strata/gnome/gnome-control-center.morph @@ -0,0 +1,5 @@ +name: gnome-control-center +kind: chunk +build-system: autotools +configure-commands: +- ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc --disable-documentation diff --git a/strata/gnome/gnome-initial-setup.morph b/strata/gnome/gnome-initial-setup.morph new file mode 100644 index 00000000..314cc409 --- /dev/null +++ b/strata/gnome/gnome-initial-setup.morph @@ -0,0 +1,9 @@ +name: gnome-initial-setup +kind: chunk +build-system: autotools +configure-commands: +- ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc +system-integration: + gnome-initial-set-misc: + 01-add-gnome-initial-setup-user: + - useradd -c "GNOME Initial Setup Owner" -g gdm -s /bin/false gnome-initial-setup diff --git a/strata/gnome/gnome-keyring.morph b/strata/gnome/gnome-keyring.morph new file mode 100644 index 00000000..73fe5298 --- /dev/null +++ b/strata/gnome/gnome-keyring.morph @@ -0,0 +1,5 @@ +name: gnome-keyring +kind: chunk +build-system: autotools +configure-commands: +- ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc --disable-selinux --enable-pam --with-pam-dir=/lib/security --disable-doc diff --git a/strata/gnome/gnome-online-accounts.morph b/strata/gnome/gnome-online-accounts.morph new file mode 100644 index 00000000..0dea9543 --- /dev/null +++ b/strata/gnome/gnome-online-accounts.morph @@ -0,0 +1,5 @@ +name: gnome-online-accounts +kind: chunk +build-system: autotools +configure-commands: +- ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc --disable-gtk-doc --disable-documentation diff --git a/strata/gnome/gnome-session.morph b/strata/gnome/gnome-session.morph new file mode 100644 index 00000000..57f1a85b --- /dev/null +++ b/strata/gnome/gnome-session.morph @@ -0,0 +1,5 @@ +name: gnome-session +kind: chunk +build-system: autotools +configure-commands: +- ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc --disable-man --enable-systemd diff --git a/strata/gnome/gnome-settings-daemon.morph b/strata/gnome/gnome-settings-daemon.morph new file mode 100644 index 00000000..3112f778 --- /dev/null +++ b/strata/gnome/gnome-settings-daemon.morph @@ -0,0 +1,5 @@ +name: gnome-settings-daemon +kind: chunk +build-system: autotools +configure-commands: +- ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc --disable-man diff --git a/strata/gnome/gnome-shell.morph b/strata/gnome/gnome-shell.morph new file mode 100644 index 00000000..dc58f670 --- /dev/null +++ b/strata/gnome/gnome-shell.morph @@ -0,0 +1,5 @@ +name: gnome-shell +kind: chunk +build-system: autotools +configure-commands: +- ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc --disable-man --enable-compile-warnings=maximum diff --git a/strata/gnome/gnome-terminal.morph b/strata/gnome/gnome-terminal.morph new file mode 100644 index 00000000..89ec5964 --- /dev/null +++ b/strata/gnome/gnome-terminal.morph @@ -0,0 +1,5 @@ +name: gnome-terminal +kind: chunk +build-system: autotools +configure-commands: +- ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc --disable-search-provider diff --git a/strata/gnome/gnome-themes-standard.morph b/strata/gnome/gnome-themes-standard.morph new file mode 100644 index 00000000..c5b6702c --- /dev/null +++ b/strata/gnome/gnome-themes-standard.morph @@ -0,0 +1,5 @@ +name: gnome-themes-standard +kind: chunk +build-system: autotools +configure-commands: +- ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc --disable-gtk2-engine diff --git a/strata/gnome/gnulib.morph b/strata/gnome/gnulib.morph new file mode 100644 index 00000000..f1837c94 --- /dev/null +++ b/strata/gnome/gnulib.morph @@ -0,0 +1,8 @@ +name: gnulib +kind: chunk +build-system: manual +pre-configure-commands: +- mkdir -p "$DESTDIR$PREFIX"/share/gnulib +- cp -r * "$DESTDIR$PREFIX"/share/gnulib +- mkdir -p "$DESTDIR$PREFIX"/bin +- ln -s "$DESTDIR$PREFIX"/share/gnulib/gnulib-tool "$DESTDIR$PREFIX"/bin/gnulib-tool diff --git a/strata/gnome/gnutls.morph b/strata/gnome/gnutls.morph new file mode 100644 index 00000000..f31cbf12 --- /dev/null +++ b/strata/gnome/gnutls.morph @@ -0,0 +1,6 @@ +name: gnutls +kind: chunk +build-system: autotools +configure-commands: +- make autoreconf +- ./configure --prefix="$PREFIX" --sysconfdir=/etc --with-nettle-mini --disable-tools --disable-doc diff --git a/strata/gnome/gvfs.morph b/strata/gnome/gvfs.morph new file mode 100644 index 00000000..1fde8c82 --- /dev/null +++ b/strata/gnome/gvfs.morph @@ -0,0 +1,5 @@ +name: gvfs +kind: chunk +build-system: autotools +configure-commands: +- ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc --disable-gphoto2 --disable-documentation diff --git a/strata/gnome/hicolor-icon-theme.morph b/strata/gnome/hicolor-icon-theme.morph new file mode 100644 index 00000000..88629b39 --- /dev/null +++ b/strata/gnome/hicolor-icon-theme.morph @@ -0,0 +1,7 @@ +name: hicolor-icon-theme +kind: chunk +build-system: autotools +system-integration: + hicolor-icon-theme-misc: + 00-update-icon-cache: + - gtk-update-icon-cache -f -t /usr/share/icons/hicolor diff --git a/strata/gnome/ibus-anthy.morph b/strata/gnome/ibus-anthy.morph new file mode 100644 index 00000000..bb48e8bb --- /dev/null +++ b/strata/gnome/ibus-anthy.morph @@ -0,0 +1,5 @@ +name: ibus-anthy +kind: chunk +build-system: autotools +configure-commands: +- ./autogen.sh --prefix="$PREFIX" --with-python=python3 --enable-private-png=yes diff --git a/strata/gnome/ibus-hangul.morph b/strata/gnome/ibus-hangul.morph new file mode 100644 index 00000000..a479459b --- /dev/null +++ b/strata/gnome/ibus-hangul.morph @@ -0,0 +1,5 @@ +name: ibus-hangul +kind: chunk +build-system: autotools +configure-commands: +- ./autogen.sh --prefix="$PREFIX" --with-python=python3 diff --git a/strata/gnome/ibus-libpinyin.morph b/strata/gnome/ibus-libpinyin.morph new file mode 100644 index 00000000..7ad8a349 --- /dev/null +++ b/strata/gnome/ibus-libpinyin.morph @@ -0,0 +1,5 @@ +name: ibus-libpinyin +kind: chunk +build-system: autotools +configure-commands: +- ./autogen.sh --prefix="$PREFIX" --with-python=python3 --disable-lua-extension diff --git a/strata/gnome/ibus.morph b/strata/gnome/ibus.morph new file mode 100644 index 00000000..f46a1a71 --- /dev/null +++ b/strata/gnome/ibus.morph @@ -0,0 +1,9 @@ +name: ibus +kind: chunk +build-system: autotools +configure-commands: +- | + ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc \ + --disable-tests --disable-gconf --enable-dconf \ + --disable-memconf --disable-ui GSETTINGS_SCHEMA_CONVERT=/usr/bin/false \ + --with-python=python3 --enable-wayland diff --git a/strata/gnome/krb5.morph b/strata/gnome/krb5.morph new file mode 100644 index 00000000..d0a4600e --- /dev/null +++ b/strata/gnome/krb5.morph @@ -0,0 +1,10 @@ +name: krb5 +kind: chunk +build-system: autotools +configure-commands: +- cd src && ./util/reconf --force +- cd src && ./configure --prefix="$PREFIX" --sysconfdir=/etc --localstatedir=/var/lib --enable-dns +build-commands: +- make -C src +install-commands: +- make -C src install diff --git a/strata/gnome/libarchive.morph b/strata/gnome/libarchive.morph new file mode 100644 index 00000000..bf840f58 --- /dev/null +++ b/strata/gnome/libarchive.morph @@ -0,0 +1,6 @@ +name: libarchive +kind: chunk +build-system: autotools +configure-commands: +- autoreconf -ivf +- ./configure --prefix="$PREFIX" --disable-acl diff --git a/strata/gnome/libatasmart.morph b/strata/gnome/libatasmart.morph new file mode 100644 index 00000000..e8df654e --- /dev/null +++ b/strata/gnome/libatasmart.morph @@ -0,0 +1,6 @@ +name: libatasmart +kind: chunk +build-system: autotools +configure-commands: +- ./autogen.sh +- ./configure CFLAGS='-g -O0 -Wp,-U_FORTIFY_SOURCE' --sysconfdir=/etc --localstatedir=/var --libdir=/usr/lib --libexecdir=/usr/lib diff --git a/strata/gnome/libgdata.morph b/strata/gnome/libgdata.morph new file mode 100644 index 00000000..4ff7c477 --- /dev/null +++ b/strata/gnome/libgdata.morph @@ -0,0 +1,6 @@ +name: libgdata +kind: chunk +build-system: autotools +configure-commands: +# Disable these cause we're too lazy to build libuhttpmock +- ./autogen.sh --prefix="$PREFIX" --disable-installed-tests --disable-always-build-tests diff --git a/strata/gnome/libhangul.morph b/strata/gnome/libhangul.morph new file mode 100644 index 00000000..f3df4601 --- /dev/null +++ b/strata/gnome/libhangul.morph @@ -0,0 +1,6 @@ +name: libhangul +kind: chunk +build-system: autotools +pre-configure-commands: +# Avoid an autotools error at translation build time, simply dont build po directory +- sed -i 's/SUBDIRS = hangul data tools po/SUBDIRS = hangul data tools/g' Makefile.am diff --git a/strata/gnome/libmediaart.morph b/strata/gnome/libmediaart.morph new file mode 100644 index 00000000..43e0812f --- /dev/null +++ b/strata/gnome/libmediaart.morph @@ -0,0 +1,5 @@ +name: libmediaart +kind: chunk +build-system: autotools +configure-commands: +- ./autogen.sh --prefix="$PREFIX" --disable-qt diff --git a/strata/gnome/libpwquality.morph b/strata/gnome/libpwquality.morph new file mode 100644 index 00000000..aefed50d --- /dev/null +++ b/strata/gnome/libpwquality.morph @@ -0,0 +1,6 @@ +name: libpwquality +kind: chunk +build-system: autotools +configure-commands: +- ./autogen.sh +- ./configure --prefix="$PREFIX" --sysconfdir=/etc --with-securedir=/lib/security --disable-nls diff --git a/strata/gnome/librest.morph b/strata/gnome/librest.morph new file mode 100644 index 00000000..34503de3 --- /dev/null +++ b/strata/gnome/librest.morph @@ -0,0 +1,9 @@ +name: librest +kind: chunk +build-system: autotools +configure-commands: +# +# Tell librest where the system CA certs are found, avoid depending on +# an installed ca-certificates. +# +- ./autogen.sh --prefix="$PREFIX" --with-ca-certificates=/etc/ssl/certs/ca-certificates.crt diff --git a/strata/gnome/libsecret.morph b/strata/gnome/libsecret.morph new file mode 100644 index 00000000..b8af29b1 --- /dev/null +++ b/strata/gnome/libsecret.morph @@ -0,0 +1,5 @@ +name: libsecret +kind: chunk +build-system: autotools +configure-commands: +- ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc --disable-manpages diff --git a/strata/gnome/mozjs17.morph b/strata/gnome/mozjs17.morph new file mode 100644 index 00000000..9ef98854 --- /dev/null +++ b/strata/gnome/mozjs17.morph @@ -0,0 +1,18 @@ +name: mozjs17 +kind: chunk +build-system: manual +configure-commands: +- | + cd js/src; + ./configure --prefix="$PREFIX" \ + --sysconfdir=/etc \ + --with-system-nspr \ + --with-system-ffi \ + --enable-threadsafe +build-commands: +- | + cd js/src; + make +install-commands: +- cd js/src; + make DESTDIR="$DESTDIR" install diff --git a/strata/gnome/mozjs24.morph b/strata/gnome/mozjs24.morph new file mode 100644 index 00000000..a3254305 --- /dev/null +++ b/strata/gnome/mozjs24.morph @@ -0,0 +1,18 @@ +name: mozjs24 +kind: chunk +build-system: manual +configure-commands: +- | + cd js/src; + ./configure --prefix="$PREFIX" \ + --sysconfdir=/etc \ + --with-system-nspr \ + --with-system-ffi \ + --enable-threadsafe +build-commands: +- | + cd js/src; + make +install-commands: +- cd js/src; + make DESTDIR="$DESTDIR" install diff --git a/strata/gnome/mutter.morph b/strata/gnome/mutter.morph new file mode 100644 index 00000000..334e3306 --- /dev/null +++ b/strata/gnome/mutter.morph @@ -0,0 +1,5 @@ +name: mutter +kind: chunk +build-system: autotools +configure-commands: +- ./autogen.sh --prefix="$PREFIX" --enable-compile-warnings=no diff --git a/strata/gnome/nautilus.morph b/strata/gnome/nautilus.morph new file mode 100644 index 00000000..3afe7fd7 --- /dev/null +++ b/strata/gnome/nautilus.morph @@ -0,0 +1,5 @@ +name: nautilus +kind: chunk +build-system: autotools +configure-commands: +- ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc --disable-xmp diff --git a/strata/gnome/nettle.morph b/strata/gnome/nettle.morph new file mode 100644 index 00000000..80bdbf51 --- /dev/null +++ b/strata/gnome/nettle.morph @@ -0,0 +1,6 @@ +name: nettle +kind: chunk +build-system: autotools +configure-commands: +- ./.bootstrap +- ./configure --prefix="$PREFIX" --libdir="$PREFIX"/lib --sysconfdir=/etc --disable-documentation --enable-mini-gmp diff --git a/strata/gnome/p11-kit.morph b/strata/gnome/p11-kit.morph new file mode 100644 index 00000000..8f88969a --- /dev/null +++ b/strata/gnome/p11-kit.morph @@ -0,0 +1,5 @@ +name: p11-kit +kind: chunk +build-system: autotools +configure-commands: +- ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc --without-trust-paths diff --git a/strata/gnome/polkit.morph b/strata/gnome/polkit.morph new file mode 100644 index 00000000..d903ae0f --- /dev/null +++ b/strata/gnome/polkit.morph @@ -0,0 +1,10 @@ +name: polkit +kind: chunk +build-system: autotools +configure-commands: +- ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc --disable-man-pages --disable-gtk-doc --enable-libsystemd-login=yes +system-integration: + polkit-misc: + 00-add-polkitd-user: + - groupadd -fg 27 polkitd + - useradd -c "PolicyKit Daemon Owner" -d /etc/polkit-1 -u 27 -g polkitd -s /bin/false polkitd diff --git a/strata/gnome/telepathy-glib.morph b/strata/gnome/telepathy-glib.morph new file mode 100644 index 00000000..88a82c89 --- /dev/null +++ b/strata/gnome/telepathy-glib.morph @@ -0,0 +1,5 @@ +name: telepathy-glib +kind: chunk +build-system: autotools +configure-commands: +- ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc --disable-Werror diff --git a/strata/gnome/telepathy-logger.morph b/strata/gnome/telepathy-logger.morph new file mode 100644 index 00000000..38c90539 --- /dev/null +++ b/strata/gnome/telepathy-logger.morph @@ -0,0 +1,5 @@ +name: telepathy-logger +kind: chunk +build-system: autotools +configure-commands: +- ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc diff --git a/strata/gnome/udisks.morph b/strata/gnome/udisks.morph new file mode 100644 index 00000000..785fab39 --- /dev/null +++ b/strata/gnome/udisks.morph @@ -0,0 +1,5 @@ +name: udisks +kind: chunk +build-system: autotools +configure-commands: +- ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc --enable-fhs-media --disable-gtk-doc --disable-man diff --git a/strata/gnome/upower.morph b/strata/gnome/upower.morph new file mode 100644 index 00000000..00e828bd --- /dev/null +++ b/strata/gnome/upower.morph @@ -0,0 +1,5 @@ +name: upower +kind: chunk +build-system: autotools +configure-commands: +- ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc --disable-man-pages diff --git a/strata/gnome/vte.morph b/strata/gnome/vte.morph new file mode 100644 index 00000000..d4501912 --- /dev/null +++ b/strata/gnome/vte.morph @@ -0,0 +1,5 @@ +name: vte +kind: chunk +build-system: autotools +configure-commands: +- ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc --enable-introspection=yes --without-pcre2 diff --git a/strata/graphics-common.morph b/strata/graphics-common.morph index 5ba4d200..63907275 100644 --- a/strata/graphics-common.morph +++ b/strata/graphics-common.morph @@ -4,6 +4,7 @@ build-depends: - morph: strata/glib-common.morph - morph: strata/mesa-common.morph - morph: strata/x-common.morph +- morph: strata/icu-common.morph chunks: - name: pixman morph: strata/graphics-common/pixman.morph @@ -14,7 +15,9 @@ chunks: repo: upstream:freetype2 ref: ec8853cd18e1a0c275372769bdad37a79550ed66 unpetrify-ref: VER-2-5-3 + build-system: autotools - name: fontconfig + morph: strata/graphics-common/fontconfig.morph repo: upstream:fontconfig ref: 9260b7ec39c34ce68d74e16d47917290a8c3f35a unpetrify-ref: 2.11.1 @@ -25,18 +28,26 @@ chunks: repo: upstream:freefont-otf ref: 75fa95a912718bb94a135d4bf6b13bb38e186ce7 unpetrify-ref: baserock/morph +- name: ttf-alee + morph: strata/graphics-common/ttf-alee.morph + repo: upstream:ttf-alee + ref: 97ededc81c03d0a7333a15a9a1e6acc4d0e5ac50 + unpetrify-ref: fonts-alee_13.1 - name: libpng repo: upstream:libpng ref: 88dd30b232362b65cca374dda39096888163dd6b unpetrify-ref: libpng-1.6.16-signed + build-system: autotools - name: libjpeg repo: upstream:libjpeg ref: f57ac58ac664ede6bc6e8cd9d88e0edaa366e21a unpetrify-ref: baserock/morph + build-system: autotools - name: libtiff repo: upstream:libtiff ref: 2f83c385ff3d5493602308b62ca6d7707725b4fd unpetrify-ref: Release-v4-0-3 + build-system: autotools - name: cairo morph: strata/graphics-common/cairo.morph repo: upstream:cairo @@ -47,9 +58,28 @@ chunks: - freetype2 - pixman - libpng +- name: colm-tarball + repo: upstream:colm-tarball + ref: 404ae0f284a3b2d41fcdb53826550e4dfec5c65c + unpetrify-ref: colm-0.12.0 + build-system: autotools +- name: ragel-tarball + repo: upstream:ragel-tarball + ref: eafd7a3974e8605fd02794269db6114a3446e016 + unpetrify-ref: ragel-6.9 + build-system: autotools + build-depends: + - colm-tarball - name: harfbuzz repo: upstream:harfbuzz - ref: 09b5393874e56fcfd63a92d28e6c1c2ddeee0942 - unpetrify-ref: baserock/0.9.12 + ref: 432ffc47a46d41bea17d839d0d3980e654c6e638 + unpetrify-ref: 1.0.4 + build-system: autotools build-depends: - freetype2 + - ragel-tarball +- name: libwebp + repo: upstream:libwebp + ref: fcd94e925a9377cccfcf9de6db278126a52b97a4 + unpetrify-ref: v0.4.3-rc1 + build-system: autotools diff --git a/strata/graphics-common/cairo.morph b/strata/graphics-common/cairo.morph index f91ac385..cc5a0725 100644 --- a/strata/graphics-common/cairo.morph +++ b/strata/graphics-common/cairo.morph @@ -2,4 +2,4 @@ name: cairo kind: chunk build-system: autotools configure-commands: -- ./autogen.sh --prefix="$PREFIX" --enable-glesv2 +- ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc --enable-glesv2 diff --git a/strata/graphics-common/fontconfig.morph b/strata/graphics-common/fontconfig.morph new file mode 100644 index 00000000..08a228f5 --- /dev/null +++ b/strata/graphics-common/fontconfig.morph @@ -0,0 +1,7 @@ +name: fontconfig +kind: chunk +build-system: autotools +system-integration: + fontconfig-misc: + 00-update-fc-cache: + - fc-cache -f -v diff --git a/strata/graphics-common/pixman.morph b/strata/graphics-common/pixman.morph index d09b3df3..7942a964 100644 --- a/strata/graphics-common/pixman.morph +++ b/strata/graphics-common/pixman.morph @@ -2,4 +2,4 @@ name: pixman kind: chunk build-system: autotools configure-commands: -- ./autogen.sh --prefix="$PREFIX" --disable-arm-iwmmxt --disable-arm-iwmmxt2 +- ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc --disable-arm-iwmmxt --disable-arm-iwmmxt2 diff --git a/strata/graphics-common/ttf-alee.morph b/strata/graphics-common/ttf-alee.morph new file mode 100644 index 00000000..b25e699f --- /dev/null +++ b/strata/graphics-common/ttf-alee.morph @@ -0,0 +1,5 @@ +name: ttf-alee +kind: chunk +install-commands: +- mkdir -p "$DESTDIR"/usr/share/fonts/truetype/alee +- install -p *.ttf "$DESTDIR"/usr/share/fonts/truetype/alee diff --git a/strata/gtk-deps.morph b/strata/gtk-deps.morph index 50f43603..0ebd5d02 100644 --- a/strata/gtk-deps.morph +++ b/strata/gtk-deps.morph @@ -7,10 +7,10 @@ build-depends: - morph: strata/x-common.morph chunks: - name: pango - morph: strata/gtk-deps/pango.morph repo: upstream:pango - ref: e0a21abf52a0b7588b1aa3357818948816ed9103 - unpetrify-ref: 1.36.8 + ref: 29a712f1af7bbb15bdc9d7e09cbf58517edf8c15 + unpetrify-ref: 1.38.0 + build-system: autotools - name: shared-mime-info morph: strata/gtk-deps/shared-mime-info.morph repo: upstream:shared-mime-info @@ -23,16 +23,33 @@ chunks: unpetrify-ref: 2.30.8 - name: atk repo: upstream:atk - ref: 3f9e43b94364053fd16eb53391667d161d0dae12 - unpetrify-ref: ATK_2_16_0 + ref: eacc351ec797f5fe477844e3012d460c195b4d88 + unpetrify-ref: ATK_2_18_0 + build-system: autotools - name: at-spi2-core + morph: strata/gtk-deps/at-spi2-core.morph repo: upstream:at-spi2-core - ref: 96c2842088008670e72739ea7921d654487a57fb - unpetrify-ref: AT_SPI2_CORE_2_14_1 + ref: 703990c0c9b39aa98fa37d07e23af88cf7549388 + unpetrify-ref: AT_SPI2_CORE_2_18_1 - name: at-spi2-atk + morph: strata/gtk-deps/at-spi2-atk.morph repo: upstream:at-spi2-atk - ref: 2c220ff6565c4f02428a0c80267616a677e81ac9 - unpetrify-ref: AT_SPI2_ATK_2_14_1 + ref: 94e7613c179960b71cb3e8541623bc0c87626f7c + unpetrify-ref: AT_SPI2_ATK_2_18_1 build-depends: - at-spi2-core - atk +- name: libcroco + repo: upstream:libcroco + ref: 9207f349d1c97618ab38e6b095207bbd8184d844 + unpetrify-ref: 0.6.8-30-g9207f34 + build-system: autotools +- name: librsvg + repo: upstream:librsvg + ref: 25d5f8b7076535fecb972d6454807ba56452991a + unpetrify-ref: 2.40.10 + build-system: autotools + build-depends: + - gdk-pixbuf + - libcroco + - pango diff --git a/strata/gtk-deps/at-spi2-atk.morph b/strata/gtk-deps/at-spi2-atk.morph new file mode 100644 index 00000000..ae15e7f1 --- /dev/null +++ b/strata/gtk-deps/at-spi2-atk.morph @@ -0,0 +1,5 @@ +name: at-spi2-atk +kind: chunk +build-system: autotools +configure-commands: +- ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc diff --git a/strata/gtk-deps/at-spi2-core.morph b/strata/gtk-deps/at-spi2-core.morph new file mode 100644 index 00000000..ec641284 --- /dev/null +++ b/strata/gtk-deps/at-spi2-core.morph @@ -0,0 +1,5 @@ +name: at-spi2-core +kind: chunk +build-system: autotools +configure-commands: +- ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc diff --git a/strata/gtk-deps/gdk-pixbuf.morph b/strata/gtk-deps/gdk-pixbuf.morph index c89c75c8..92655e30 100644 --- a/strata/gtk-deps/gdk-pixbuf.morph +++ b/strata/gtk-deps/gdk-pixbuf.morph @@ -1,6 +1,8 @@ name: gdk-pixbuf kind: chunk build-system: autotools -install-commands: -- make DESTDIR=$DESTDIR install -- LD_LIBRARY_PATH=$DESTDIR/usr/lib $DESTDIR/usr/bin/gdk-pixbuf-query-loaders > $DESTDIR/usr/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache +system-integration: + gdk-pixbuf-misc: + 01-query-loaders: + - mkdir -p /usr/lib/gdk-pixbuf-2.0/2.10.0/ + - /usr/bin/gdk-pixbuf-query-loaders > /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache diff --git a/strata/gtk-deps/pango.morph b/strata/gtk-deps/pango.morph deleted file mode 100644 index 82b00ee3..00000000 --- a/strata/gtk-deps/pango.morph +++ /dev/null @@ -1,8 +0,0 @@ -name: pango -kind: chunk -build-system: autotools -system-integration: - pango-misc: - 01-setup-modules: - - mkdir -p /usr/etc/pango/ - - /usr/bin/pango-querymodules > /usr/etc/pango/pango.modules diff --git a/strata/gtk2.morph b/strata/gtk2.morph index dd2f30fa..4c8db88a 100644 --- a/strata/gtk2.morph +++ b/strata/gtk2.morph @@ -3,10 +3,10 @@ kind: stratum description: the gtk2 stratum build-depends: - morph: strata/gtk-deps.morph -- morph: strata/x-generic.morph +- morph: strata/x-common.morph chunks: - name: gtk+ morph: strata/gtk2/gtk+.morph repo: upstream:gtk+ - ref: e6333a1a374591fef456f7fe73942226b5b8b388 - unpetrify-ref: 2.24.27 + ref: b5b055721378ffe0269613e49ab5741a315eeb00 + unpetrify-ref: 2.24.28 diff --git a/strata/gtk2/gtk+.morph b/strata/gtk2/gtk+.morph index abbf2510..bdc14cc6 100644 --- a/strata/gtk2/gtk+.morph +++ b/strata/gtk2/gtk+.morph @@ -4,8 +4,12 @@ build-system: autotools configure-commands: - gdk-pixbuf-query-loaders > loader.cache - NOCONFIGURE=1 ./autogen.sh -- ./configure --prefix="$PREFIX" +- ./configure --prefix="$PREFIX" --sysconfdir=/etc build-commands: - GDK_PIXBUF_MODULE_FILE="$(pwd)/loader.cache" make install-commands: - GDK_PIXBUF_MODULE_FILE="$(pwd)/loader.cache" make install DESTDIR="$DESTDIR" +system-integration: + gtk2-misc: + 00-update-im2-cache: + - gtk-query-immodules-2.0 --update-cache diff --git a/strata/gtk3.morph b/strata/gtk3.morph index f03417a2..4e2537a4 100644 --- a/strata/gtk3.morph +++ b/strata/gtk3.morph @@ -4,15 +4,10 @@ description: the gtk3 stratum build-depends: - morph: strata/gtk-deps.morph - morph: strata/wayland-generic.morph +- morph: strata/x-common.morph chunks: -- name: libepoxy - repo: upstream:libepoxy - ref: 7422de5b4be7b19d789136b3bb5f932de42db27c - unpetrify-ref: v1.2 - name: gtk3 morph: strata/gtk3/gtk3.morph repo: upstream:gtk+ - ref: a816ccd4968f1e221b92bfd1e2b2dc27703d6db5 - unpetrify-ref: 3.16.0 - build-depends: - - libepoxy + ref: 1ed442180d65da78d071019c0dc0d365932e4503 + unpetrify-ref: 3.18.2 diff --git a/strata/gtk3/gtk3.morph b/strata/gtk3/gtk3.morph index 4542dc15..86e15e89 100644 --- a/strata/gtk3/gtk3.morph +++ b/strata/gtk3/gtk3.morph @@ -4,8 +4,12 @@ build-system: autotools configure-commands: - gdk-pixbuf-query-loaders > loader.cache - NOCONFIGURE=1 ./autogen.sh -- ./configure --prefix="$PREFIX" --enable-wayland-backend +- ./configure --prefix="$PREFIX" --sysconfdir=/etc build-commands: - GDK_PIXBUF_MODULE_FILE="$(pwd)/loader.cache" make install-commands: - GDK_PIXBUF_MODULE_FILE="$(pwd)/loader.cache" make install DESTDIR="$DESTDIR" +system-integration: + gtk3-misc: + 00-update-im3-cache: + - gtk-query-immodules-3.0 --update-cache diff --git a/strata/icu-common.morph b/strata/icu-common.morph new file mode 100644 index 00000000..51a44361 --- /dev/null +++ b/strata/icu-common.morph @@ -0,0 +1,10 @@ +name: icu-common +kind: stratum +build-depends: +- morph: strata/coreutils-common.morph +chunks: +- name: icu + morph: strata/icu-common/icu.morph + repo: upstream:icu + ref: ba023548a3bff7277cbea4acade3042ce9d8949e + unpetrify-ref: baserock/morph diff --git a/strata/icu-common/icu.morph b/strata/icu-common/icu.morph new file mode 100644 index 00000000..42a7bc58 --- /dev/null +++ b/strata/icu-common/icu.morph @@ -0,0 +1,20 @@ +name: icu +kind: chunk +configure-commands: +- | + # As per commit 8874a7c7, We issue this sed command when + # building ICU libraries on arm architectures. + cpu=$(echo $TARGET | cut -d '-' -f 1) + case "$cpu" in + *arm*) + sed -e 's/LDFLAGSICUDT/#LDFLAGSICUDT/' -i source/config/mh-linux + ;; + *) + ;; + esac + cd source + ./runConfigureICU Linux --prefix=/usr --sysconfdir=/etc +build-commands: +- cd source; unset TARGET ; make +install-commands: +- cd source; unset TARGET ; make DESTDIR="$DESTDIR" install diff --git a/strata/input-common.morph b/strata/input-common.morph index b67bcffe..c2ac35d7 100644 --- a/strata/input-common.morph +++ b/strata/input-common.morph @@ -3,11 +3,13 @@ kind: stratum build-depends: - morph: strata/foundation.morph - morph: strata/xorg-util-macros-common.morph +- morph: strata/x-common.morph chunks: - name: mtdev repo: upstream:mtdev-git ref: 4381b78fea54de0e775bf54952b2f95e5a06c57d unpetrify-ref: v1.1.5 + build-system: autotools - name: xkeyboard-config morph: strata/input-common/xkeyboard-config.morph repo: upstream:xkeyboard-config @@ -17,10 +19,19 @@ chunks: repo: upstream:libevdev ref: 6f03fd49fb949e46ebccb5dfb54489584896c791 unpetrify-ref: libevdev-1.4.2 + build-system: autotools - name: libinput repo: upstream:libinput - ref: 12df380698531472d495534ed356722478563707 - unpetrify-ref: 0.15.0 + ref: a52cc616b4c00d0975a3311a2a06057bdb419ba2 + unpetrify-ref: 1.0.1 + build-system: autotools build-depends: - mtdev - libevdev +- name: libxkbcommon-no-x11 + repo: upstream:xorg-lib-libxkbcommon + ref: c43c3c866eb9d52cd8f61e75cbef1c30d07f3a28 + morph: strata/input-common/libxkbcommon-no-x11.morph + unpetrify-ref: xkbcommon-0.5.0 + build-depends: + - xkeyboard-config diff --git a/strata/input-common/libxkbcommon-no-x11.morph b/strata/input-common/libxkbcommon-no-x11.morph new file mode 100644 index 00000000..95165aaf --- /dev/null +++ b/strata/input-common/libxkbcommon-no-x11.morph @@ -0,0 +1,12 @@ +name: libxkbcommon-no-x11 +kind: chunk + +description: | + xkbcommon is a library to handle keyboard descriptions. + + This version is built without X11 support. If built with X11 support, + it depends on the xcb-xkb library. + +build-system: autotools +configure-commands: +- ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc --disable-x11 diff --git a/strata/input-common/xkeyboard-config.morph b/strata/input-common/xkeyboard-config.morph index ad33b422..2195befe 100644 --- a/strata/input-common/xkeyboard-config.morph +++ b/strata/input-common/xkeyboard-config.morph @@ -1,7 +1,7 @@ name: xkeyboard-config kind: chunk configure-commands: -- ./autogen.sh --prefix="$PREFIX" --disable-runtime-deps +- ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc --disable-runtime-deps install-commands: - mkdir -p "$DESTDIR"/"$PREFIX"/share/X11/xkb/ - make install DESTDIR="$DESTDIR" diff --git a/strata/input-genivi.morph b/strata/input-genivi.morph new file mode 100644 index 00000000..5e86e704 --- /dev/null +++ b/strata/input-genivi.morph @@ -0,0 +1,39 @@ +name: input-genivi +kind: stratum +description: | + Input components for GENIVI Demo Platform. GDP needs libinput 0.7, + because 0.8+ changed function signatures that weston uses. +build-depends: +- morph: strata/foundation.morph +- morph: strata/xorg-util-macros-common.morph +chunks: +- name: mtdev + repo: upstream:mtdev-git + ref: 4381b78fea54de0e775bf54952b2f95e5a06c57d + unpetrify-ref: v1.1.5 + build-system: autotools +- name: xkeyboard-config + morph: strata/input-genivi/xkeyboard-config.morph + repo: upstream:xkeyboard-config + ref: 26f344c93f8c6141e9233eb68088ba4fd56bc9ef + unpetrify-ref: xkeyboard-config-2.14 +- name: libevdev + repo: upstream:libevdev + ref: 6f03fd49fb949e46ebccb5dfb54489584896c791 + unpetrify-ref: libevdev-1.4.2 + build-system: autotools +- name: libinput@genivi + repo: upstream:libinput + ref: 06e2f522a4ab5ea0a1de68cce1b5f9fff568ed4f + unpetrify-ref: 0.7.0 + build-system: autotools + build-depends: + - mtdev + - libevdev +- name: libxkbcommon-no-x11 + repo: upstream:xorg-lib-libxkbcommon + ref: c43c3c866eb9d52cd8f61e75cbef1c30d07f3a28 + morph: strata/input-genivi/libxkbcommon-no-x11.morph + unpetrify-ref: xkbcommon-0.5.0 + build-depends: + - xkeyboard-config diff --git a/strata/input-genivi/libxkbcommon-no-x11.morph b/strata/input-genivi/libxkbcommon-no-x11.morph new file mode 100644 index 00000000..95165aaf --- /dev/null +++ b/strata/input-genivi/libxkbcommon-no-x11.morph @@ -0,0 +1,12 @@ +name: libxkbcommon-no-x11 +kind: chunk + +description: | + xkbcommon is a library to handle keyboard descriptions. + + This version is built without X11 support. If built with X11 support, + it depends on the xcb-xkb library. + +build-system: autotools +configure-commands: +- ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc --disable-x11 diff --git a/strata/input-genivi/xkeyboard-config.morph b/strata/input-genivi/xkeyboard-config.morph new file mode 100644 index 00000000..2195befe --- /dev/null +++ b/strata/input-genivi/xkeyboard-config.morph @@ -0,0 +1,7 @@ +name: xkeyboard-config +kind: chunk +configure-commands: +- ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc --disable-runtime-deps +install-commands: +- mkdir -p "$DESTDIR"/"$PREFIX"/share/X11/xkb/ +- make install DESTDIR="$DESTDIR" diff --git a/strata/libdrm-common.morph b/strata/libdrm-common.morph index 16ef2375..d4da4408 100644 --- a/strata/libdrm-common.morph +++ b/strata/libdrm-common.morph @@ -7,10 +7,11 @@ chunks: repo: upstream:xorg-lib-libpciaccess ref: f99c2e4199ce37f6f94428df504427f67c3ec543 unpetrify-ref: libpciaccess-0.13.3 + build-system: autotools - name: drm repo: upstream:drm morph: strata/libdrm-common/drm.morph - ref: 5f7b6723e1bed755c230817eea0563bab5b2a8a7 - unpetrify-ref: libdrm-2.4.60 + ref: ab2fadabde3829b1ec56bd4756165dd9bd281488 + unpetrify-ref: libdrm-2.4.64 build-depends: - xorg-lib-libpciaccess diff --git a/strata/libdrm-common/drm.morph b/strata/libdrm-common/drm.morph index 4b0bdcc1..fd995148 100644 --- a/strata/libdrm-common/drm.morph +++ b/strata/libdrm-common/drm.morph @@ -1,17 +1,7 @@ name: drm kind: chunk build-system: autotools -pre-configure-commands: - # Tegra requires a new coherent BO attribute, not currently upstream, so - # patch it here - - sed -i '/NOUVEAU_GEM_DOMAIN_MAPPABLE (1 << 3)/a#define NOUVEAU_GEM_DOMAIN_COHERENT (1 - << 4)' include/drm/nouveau_drm.h - - | - sed -i '/info->domain |= NOUVEAU_GEM_DOMAIN_MAPPABLE;/a\ - if (bo->flags & NOUVEAU_BO_COHERENT)\ - info->domain |= NOUVEAU_GEM_DOMAIN_COHERENT;' nouveau/abi16.c - - sed -i '/NOUVEAU_BO_NOSNOOP 0x20000000/a#define NOUVEAU_BO_COHERENT 0x10000000' - nouveau/nouveau.h configure-commands: -- NOCONFIGURE=1 ./autogen.sh -- ./configure --prefix="$PREFIX" --enable-tegra-experimental-api --enable-freedreno-experimental-api +- | + ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc \ + --enable-tegra-experimental-api diff --git a/strata/libsoup-common/libsoup.morph b/strata/libsoup-common/libsoup.morph index 0a5ebef6..804925aa 100644 --- a/strata/libsoup-common/libsoup.morph +++ b/strata/libsoup-common/libsoup.morph @@ -3,4 +3,4 @@ kind: chunk build-system: autotools configure-commands: - NOCONFIGURE=1 ./autogen.sh -- ./configure --prefix="$PREFIX" --disable-tls-check +- ./configure --prefix="$PREFIX" --sysconfdir=/etc --disable-tls-check diff --git a/strata/llvm-common.morph b/strata/llvm-common.morph index 1291e062..b12f4307 100644 --- a/strata/llvm-common.morph +++ b/strata/llvm-common.morph @@ -6,5 +6,5 @@ chunks: - name: llvm morph: strata/llvm-common/llvm.morph repo: upstream:llvm - ref: a93239b7c6f0d78cb8836768c3ffbc39fb15b79f - unpetrify-ref: release_33 + ref: 0776facd2ee120ca6286cb2109356e05e4085bfc + unpetrify-ref: release_37 diff --git a/strata/llvm-common/llvm.morph b/strata/llvm-common/llvm.morph index d47d1837..0d4f07c4 100644 --- a/strata/llvm-common/llvm.morph +++ b/strata/llvm-common/llvm.morph @@ -1,9 +1,11 @@ name: llvm -kind: chunk description: Low Level Virtual Machine -build-system: autotools +kind: chunk +build-system: cmake configure-commands: -- ./configure --prefix="$PREFIX" --sysconfdir=/etc --enable-shared --enable-targets=host - --enable-optimized --disable-assertions +- mkdir o +- cd o && cmake -DCMAKE_INSTALL_PREFIX="$PREFIX" -DCMAKE_BUILD_TYPE=Release .. build-commands: -- make $MAKEFLAGS +- cd o && make +install-commands: +- cd o && make DESTDIR="$DESTDIR" install diff --git a/strata/lorry-controller.morph b/strata/lorry-controller.morph index 00ae5752..57e34185 100644 --- a/strata/lorry-controller.morph +++ b/strata/lorry-controller.morph @@ -12,5 +12,5 @@ chunks: - name: lorry-controller morph: strata/lorry-controller/lorry-controller.morph repo: baserock:baserock/lorry-controller - ref: f3f59d1415bfdb18f17bd910b829a8d128c1562a + ref: 05ce93f191039df06a812a085476ba60af5a2cb6 unpetrify-ref: master diff --git a/strata/lorry.morph b/strata/lorry.morph index 3f5722ee..c40ce664 100644 --- a/strata/lorry.morph +++ b/strata/lorry.morph @@ -18,14 +18,17 @@ chunks: repo: upstream:bzr-tarball ref: e61c7edb4789abcd0f73c30fe719fa6fea478a52 unpetrify-ref: baserock/morph + build-system: python-distutils - name: python-fastimport repo: upstream:python-fastimport ref: 6500a5e7d82651ade9002d44e3ecc71a50302616 unpetrify-ref: baserock/morph + build-system: python-distutils - name: bzr-fastimport repo: upstream:bzr-fastimport ref: b3cda9967f857127bd4dab5eb72223a95916f5ea unpetrify-ref: baserock/morph + build-system: python-distutils build-depends: - bzr-tarball - python-fastimport @@ -55,13 +58,14 @@ chunks: repo: upstream:perl-dbd-sqlite-tarball ref: 485b97be9f2f2abf5a40923b5fd85f75714a8c02 unpetrify-ref: baserock/morph + build-system: cpan build-depends: - perl-dbi-tarball - name: libserf morph: strata/lorry/libserf.morph repo: upstream:libserf-tarball - ref: 6f61a1acd01dc2ad1d2f5c1f7458702c77c69f9c - unpetrify-ref: baserock/morph + ref: f143c3cab79c59dd57124f19d16ac35253843136 + unpetrify-ref: master build-depends: - libapr - libapr-util @@ -106,7 +110,7 @@ chunks: - name: lorry morph: strata/lorry/lorry.morph repo: baserock:baserock/lorry - ref: a55f642cd3e2d7e330cf96ff9f9eb5d03ae39192 + ref: 37ebbacd09145fa6bbaf54dac2a211a5d83f01a5 unpetrify-ref: master build-depends: - bzr-tarball diff --git a/strata/mesa-common.morph b/strata/mesa-common.morph index 29d2a746..3e701157 100644 --- a/strata/mesa-common.morph +++ b/strata/mesa-common.morph @@ -5,10 +5,18 @@ build-depends: - morph: strata/llvm-common.morph - morph: strata/libdrm-common.morph - morph: strata/wayland-generic.morph -- morph: strata/python-core.morph +- morph: strata/python2-core.morph +- morph: strata/x-common.morph chunks: - name: mesa morph: strata/mesa-common/mesa.morph repo: upstream:mesa - ref: 635ad274470a064100ff6aa38ede83d748ae07cf - unpetrify-ref: baserock/mesa-10.6.0-rc1-jetson + ref: 4f1e500150be2e82a2d7eb954f7198cc0c5cbec1 + unpetrify-ref: mesa-11.0.0 +- name: libepoxy + repo: upstream:libepoxy + ref: e2c33af5bfcfc9d168f9e776156dd47c33f428b3 + unpetrify-ref: v1.3.1 + build-system: autotools + build-depends: + - mesa diff --git a/strata/mesa-common/mesa.morph b/strata/mesa-common/mesa.morph index 2a3fe96a..b9268a64 100644 --- a/strata/mesa-common/mesa.morph +++ b/strata/mesa-common/mesa.morph @@ -14,9 +14,9 @@ configure-commands: GALLIUMDRIVERS=yes ;; esac - ./autogen.sh --prefix="$PREFIX" \ + ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc \ --enable-gles2 \ - --disable-glx \ - --with-egl-platforms=drm,wayland \ + --with-egl-platforms=drm,wayland,x11 \ --with-gallium-drivers="$GALLIUMDRIVERS" \ - --with-dri-drivers="$DRIDRIVERS" + --with-dri-drivers="$DRIDRIVERS" \ + --disable-llvm-shared-libs diff --git a/strata/morph-utils.morph b/strata/morph-utils.morph index f5e3568a..7acc186a 100644 --- a/strata/morph-utils.morph +++ b/strata/morph-utils.morph @@ -4,7 +4,7 @@ build-depends: - morph: strata/core.morph - morph: strata/ostree-core.morph - morph: strata/python-cliapp.morph -- morph: strata/python-core.morph +- morph: strata/python2-core.morph - morph: strata/python-pygobject.morph - morph: strata/python-wsgi.morph chunks: @@ -34,10 +34,12 @@ chunks: repo: upstream:python-packages/pylru ref: 221dd259f5c34562c835611d1cf62384b9019da4 unpetrify-ref: master + build-system: python-distutils - name: morph repo: baserock:baserock/morph - ref: 60c378c55d5d0ef89184b49ae95e445f8de422e3 + ref: fad8048de66fe6aeaa0478864914bb773f51ed3e unpetrify-ref: master + build-system: python-distutils build-depends: - cmdtest - pyfilesystem @@ -45,12 +47,8 @@ chunks: # This chunk isn't required to use Morph, but is required to do automated # migrations within the definitions.git repo. -# -# Currently we include a forked version that includes some support for -# preserving blank lines. This is quite useful when operating on .morph files. -# The patches have been submitted upstream here: -# https://bitbucket.org/ruamel/yaml/pull-request/3 - name: ruamel.yaml repo: upstream:python-packages/ruamel.yaml - ref: 840b3ccdb306c6aa6d874474e621ae5596595ae4 - unpetrify-ref: baserock/sam/blank-line-preservation-1 + ref: f3de88b82bf5e3902c44f6c30aed065e56626ee6 + unpetrify-ref: 0.10.5 + build-system: python-distutils diff --git a/strata/multimedia-common.morph b/strata/multimedia-common.morph index 2eaedabf..94278bc8 100644 --- a/strata/multimedia-common.morph +++ b/strata/multimedia-common.morph @@ -8,22 +8,26 @@ chunks: repo: upstream:ogg-git ref: 9b2ba419aecb4a1c97114545d57174593dc13111 unpetrify-ref: master + build-system: autotools - name: libvorbis repo: upstream:libvorbis-git ref: 7187e7a48f0c3ba32cc080f6bc3d921fe4ec6cc2 unpetrify-ref: master + build-system: autotools build-depends: - ogg - name: tremor repo: upstream:tremor ref: b56ffce0c0773ec5ca04c466bc00b1bbcaf65aef unpetrify-ref: master + build-system: autotools build-depends: - ogg - name: flac repo: upstream:flac ref: 6ced857c253d5da286bf31adfd74a627aaa43c77 unpetrify-ref: master + build-system: autotools build-depends: - ogg - name: libmad diff --git a/strata/multimedia-common/libmad.morph b/strata/multimedia-common/libmad.morph index 839adc15..5e9b1987 100644 --- a/strata/multimedia-common/libmad.morph +++ b/strata/multimedia-common/libmad.morph @@ -7,4 +7,4 @@ configure-commands: case $MORPH_ARCH in mips64*) ARCH_FLAGS="--enable-fpm=64bit" ;; esac - ./configure --prefix="$PREFIX" $ARCH_FLAGS + ./configure --prefix="$PREFIX" --sysconfdir=/etc $ARCH_FLAGS diff --git a/strata/multimedia-gstreamer-0.10.morph b/strata/multimedia-gstreamer-0.10.morph index 51230de2..a9c84ca4 100644 --- a/strata/multimedia-gstreamer-0.10.morph +++ b/strata/multimedia-gstreamer-0.10.morph @@ -11,22 +11,26 @@ chunks: repo: upstream:orc ref: b4f7fcaf99a4d952e59f2a9fa9286d24cc4b3a5a unpetrify-ref: baserock/morph + build-system: autotools - name: gstreamer@0.10 repo: upstream:gstreamer ref: 1bb950008f4656f6a6153fa88a8ebb5a39fbe84f unpetrify-ref: baserock/morph/0.10 + build-system: autotools build-depends: - orc - name: gstreamer-plugins-base@0.10 repo: upstream:gstreamer-plugins-base ref: 960c596309dbb983a1d733259adccc45c47006a2 unpetrify-ref: baserock/morph/0.10 + build-system: autotools build-depends: - gstreamer@0.10 - name: gstreamer-plugins-good@0.10 repo: upstream:gstreamer-plugins-good ref: 725e80e0c6b7f8e66d9b3fcaffd283ecbd8498d3 unpetrify-ref: baserock/morph/0.10 + build-system: autotools build-depends: - gstreamer@0.10 - gstreamer-plugins-base@0.10 diff --git a/strata/multimedia-gstreamer.morph b/strata/multimedia-gstreamer.morph index f91e5173..497b293b 100644 --- a/strata/multimedia-gstreamer.morph +++ b/strata/multimedia-gstreamer.morph @@ -3,6 +3,7 @@ kind: stratum description: GStreamer multimedia components build-depends: - morph: strata/audio-bluetooth.morph +- morph: strata/libsoup-common.morph - morph: strata/multimedia-common.morph - morph: strata/mesa-common.morph chunks: @@ -10,22 +11,26 @@ chunks: repo: upstream:orc ref: 16e053b8f2359196fd50b111f1c10b93590f5cb9 unpetrify-ref: orc-0.4.22 + build-system: autotools - name: gstreamer repo: upstream:gstreamer ref: c61dea148ca3f14586d8eddf0b7e6ca47c164c86 unpetrify-ref: baserock/1.4.4+bison_fix + build-system: autotools build-depends: - orc - name: gstreamer-plugins-base repo: upstream:gstreamer-plugins-base ref: 3b38ad94a2d58c07c24e4647e08afa1fe4dd7d46 unpetrify-ref: baserock/1.4 + build-system: autotools build-depends: - gstreamer - name: gstreamer-plugins-good repo: upstream:gstreamer-plugins-good ref: 9d48c2f7a7b63fd967de7eec72434bc876c02667 unpetrify-ref: baserock/1.4 + build-system: autotools build-depends: - gstreamer - gstreamer-plugins-base @@ -34,6 +39,7 @@ chunks: repo: upstream:gstreamer-plugins-bad ref: bb2a4669ff57af90c8101c54744d3228aa060475 unpetrify-ref: baserock/1.4 + build-system: autotools build-depends: - gstreamer - gstreamer-plugins-base diff --git a/strata/network-security/nspr.morph b/strata/network-security/nspr.morph index 27613eb4..078486e7 100644 --- a/strata/network-security/nspr.morph +++ b/strata/network-security/nspr.morph @@ -9,4 +9,4 @@ configure-commands: *) EXTRA_ARGS="";; esac - ./configure --prefix="$PREFIX" --with-mozilla --with-pthreads $EXTRA_ARGS + ./configure --prefix="$PREFIX" --sysconfdir=/etc --with-mozilla --with-pthreads $EXTRA_ARGS diff --git a/strata/network-security/nss.morph b/strata/network-security/nss.morph index c83fd174..bc50df8c 100644 --- a/strata/network-security/nss.morph +++ b/strata/network-security/nss.morph @@ -4,4 +4,4 @@ max-jobs: 1 build-system: autotools configure-commands: - NOCONFIGURE=1 ./autogen.sh -- ./configure --prefix="$PREFIX" --libdir="$PREFIX/lib" +- ./configure --prefix="$PREFIX" --sysconfdir=/etc --libdir="$PREFIX/lib" diff --git a/strata/networking-utils.morph b/strata/networking-utils.morph index 880371cd..d452b72b 100644 --- a/strata/networking-utils.morph +++ b/strata/networking-utils.morph @@ -23,6 +23,7 @@ chunks: repo: upstream:libmnl ref: c9f19b98cd8e108617e825e071091df14f78c53a unpetrify-ref: master + build-system: autotools - name: ipset morph: strata/networking-utils/ipset.morph repo: upstream:ipset diff --git a/strata/nfs.morph b/strata/nfs.morph index 9b9aa248..e05d585c 100644 --- a/strata/nfs.morph +++ b/strata/nfs.morph @@ -8,6 +8,7 @@ chunks: repo: upstream:libevent ref: 0b49ae34594533daa82c06a506078de9e336a013 unpetrify-ref: release-2.1.5-beta + build-system: autotools - name: ti-rpc morph: strata/nfs/ti-rpc.morph repo: upstream:ti-rpc diff --git a/strata/nodejs.morph b/strata/nodejs.morph index 58dbdd0b..6d94abe2 100644 --- a/strata/nodejs.morph +++ b/strata/nodejs.morph @@ -3,8 +3,10 @@ kind: stratum description: Stratum for nodejs related stuff build-depends: - morph: strata/core.morph +- morph: strata/python2-core.morph chunks: - name: node repo: upstream:node ref: cc56c62ed879ad4f93b1fdab3235c43e60f48b7e unpetrify-ref: v0.10.26 + build-system: autotools diff --git a/strata/openstack-clients.morph b/strata/openstack-clients.morph index 2b458cc1..ae0662e1 100644 --- a/strata/openstack-clients.morph +++ b/strata/openstack-clients.morph @@ -8,14 +8,17 @@ chunks: repo: upstream:warlock ref: 408ccb82347aabf3dc7cf6eccbd2ed2475cb0d60 unpetrify-ref: 1.1.0 + build-system: python-distutils - name: python-keystoneclient repo: upstream:openstack/python-keystoneclient ref: 8fa6b6f0b5e95493342ce71489d04f73db2418b8 unpetrify-ref: 1.3.1 + build-system: python-distutils - name: python-glanceclient repo: upstream:openstack/python-glanceclient ref: b176c28bbdae3eb5b3280c1981ad2b3b255e234e unpetrify-ref: 0.17.1 + build-system: python-distutils build-depends: - python-keystoneclient - warlock @@ -23,20 +26,24 @@ chunks: repo: upstream:openstack/python-novaclient ref: e0f5072907a00d48a183dd8fc91a6cf6038ca279 unpetrify-ref: 2.23.0 + build-system: python-distutils build-depends: - python-keystoneclient - name: python-swiftclient repo: upstream:openstack/python-swiftclient ref: bb4d2ab59c4de9389667eeed255642f51e276f1e unpetrify-ref: 2.3.1 + build-system: python-distutils - name: python-troveclient repo: upstream:openstack/python-troveclient ref: e010a919750f07493afd42a4db867853b925bcbf unpetrify-ref: 1.0.7 + build-system: python-distutils - name: python-cinderclient repo: upstream:openstack/python-cinderclient ref: ac9b0913904c43f4bf12c8164324d6e6a55dc1ab unpetrify-ref: 1.1.1 + build-system: python-distutils build-depends: - python-keystoneclient - name: pyparsing @@ -48,12 +55,14 @@ chunks: repo: upstream:python-packages/cmd2-hg ref: c0d606bdeb88717ad92ba198bc9232615b83c4cd unpetrify-ref: 0.6.7 + build-system: python-distutils build-depends: - pyparsing - name: cliff repo: upstream:openstack/cliff ref: b703ad32743026d253f872caa1ff2cd727803d14 unpetrify-ref: 1.10.1 + build-system: python-distutils build-depends: - cmd2 - pyparsing @@ -71,6 +80,7 @@ chunks: repo: upstream:openstack/python-neutronclient ref: aa1215a5ad063b299d32ef319eb63d5210249a9b unpetrify-ref: 2.4.0 + build-system: python-distutils build-depends: - cliff - python-keystoneclient @@ -78,18 +88,21 @@ chunks: repo: upstream:openstack/python-ceilometerclient ref: 127aadfd2b2daf9884ad7003e23440048e2efbd8 unpetrify-ref: 1.0.14 + build-system: python-distutils build-depends: - python-keystoneclient - name: python-heatclient repo: upstream:openstack/python-heatclient ref: 6d528f005742263837d05250662bf6214a703da8 unpetrify-ref: 0.4.0 + build-system: python-distutils build-depends: - python-keystoneclient - name: python-designateclient repo: upstream:openstack/python-designateclient ref: a900b41e4d8a9eb40e1812295ba16d773e2b9618 unpetrify-ref: 1.1.0 + build-system: python-distutils build-depends: - cliff - python-keystoneclient @@ -97,6 +110,7 @@ chunks: repo: upstream:openstack/python-barbicanclient ref: 2919366867af335d59913764a55ca8e95569947d unpetrify-ref: 3.0.3 + build-system: python-distutils build-depends: - python-keystoneclient - cliff @@ -104,6 +118,7 @@ chunks: repo: upstream:openstack/python-saharaclient ref: 319ceb6acf55382218dcd971367613aecb3e4afc unpetrify-ref: 0.8.0 + build-system: python-distutils build-depends: - python-keystoneclient - name: python-ironicclient diff --git a/strata/openstack-common.morph b/strata/openstack-common.morph index b66d0144..e2bd0071 100644 --- a/strata/openstack-common.morph +++ b/strata/openstack-common.morph @@ -11,16 +11,19 @@ chunks: repo: upstream:python-packages/pycparser ref: c926670643ebb5f88a2bf56579fc9934c82be6d2 unpetrify-ref: master + build-system: python-distutils - name: cffi repo: upstream:python-packages/cffi ref: fc53b53095d61a1ec5814c09c3bf2c7e18627fb5 unpetrify-ref: master + build-system: python-distutils build-depends: - pycparser - name: pytz repo: upstream:pytz-tarball ref: c414cb801776e11c769fb36c0d37b8d7a7c8712c unpetrify-ref: pytz-2014.10 + build-system: python-distutils - name: babel morph: strata/openstack-common/babel.morph repo: upstream:babel @@ -36,14 +39,17 @@ chunks: repo: upstream:python-packages/enum34.git ref: f1fa1787ceaac72b9934f318ea2135d28c05dd55 unpetrify-ref: enum34-1.0 + build-system: python-distutils - name: pyasn1 repo: upstream:python-packages/pyasn1 ref: fa8e66c5f4367a1e39b53dcddc133d084b10400f unpetrify-ref: release_0_1_7_tag + build-system: python-distutils - name: cryptography repo: upstream:python-packages/cryptography ref: 9ac7d55150c8410a08ee3b00b89bfeac3dbd8e8f unpetrify-ref: 0.7.2 + build-system: python-distutils build-depends: - pyasn1 - enum34 @@ -52,18 +58,22 @@ chunks: repo: upstream:pyiso8601 ref: 9eb87a9bab114e9cc9a8d3dceb04362644d89cab unpetrify-ref: 0.1.10 + build-system: python-distutils - name: netaddr repo: upstream:netaddr ref: bbb31ed50a5338a7d1c0011fc4429d09954f9f0b unpetrify-ref: release-0.7.12 + build-system: python-distutils - name: stevedore repo: upstream:openstack/stevedore ref: 218e95d5f09563bd14c50ee0441855f3389af7e7 unpetrify-ref: 1.3.0 + build-system: python-distutils - name: oslo-config repo: upstream:openstack/oslo-config ref: 3c51838cdffe7a5057ff4823a8ab523bfacc3164 unpetrify-ref: 1.9.3 + build-system: python-distutils build-depends: - netaddr - stevedore @@ -71,20 +81,24 @@ chunks: repo: upstream:python-packages/pyopenssl ref: 0146d447e63a737b4f05a1164d5950eff68543e7 unpetrify-ref: 0.14 + build-system: python-distutils - name: oslo-i18n repo: upstream:openstack/oslo-i18n ref: b0faab7b3d3ea3b14053ab92dd6086956f643e15 unpetrify-ref: 1.5.0 + build-system: python-distutils build-depends: - babel - name: netifaces repo: upstream:python-packages/netifaces ref: 885b200ba717df87f6e8044ec8c66c677c949bcb unpetrify-ref: release_0_10_4 + build-system: python-distutils - name: oslo-utils repo: upstream:openstack/oslo-utils ref: 91dc782c2f11fb76425effd7a331d63111adf1ce unpetrify-ref: 1.4.0 + build-system: python-distutils build-depends: - babel - pyiso8601 @@ -95,29 +109,31 @@ chunks: repo: upstream:python-packages/futures ref: 4f7ceedb8a7742e52b0436a4160c7c44665a2597 unpetrify-ref: 2.2.0 + build-system: python-distutils - name: oslo-serialization repo: upstream:openstack/oslo-serialization.git ref: 7bfd5dece0f22dbdea1c3e524dbc0eca1f70f1b7 unpetrify-ref: 1.4.0 -- name: jsonschema - repo: upstream:jsonschema - ref: 35b60f390098d3306c03eee27ceec8cf8a493579 - unpetrify-ref: v2.3.0 + build-system: python-distutils - name: simplejson repo: upstream:simplejson ref: 54d5ff15d508c51366986cc4f77f2f287f036582 unpetrify-ref: v3.6.4 + build-system: python-distutils - name: greenlet - ref: 42b65a7b67dfabd180625155cd4fcd8e51917fe2 - unpetrify-ref: 0.4.5 + ref: ed943580bc514144958ebd257156ddfb7584a981 + unpetrify-ref: 0.4.9 repo: upstream:python-packages/greenlet + build-system: python-distutils - name: eventlet - ref: bc0a59f8efdb6d436dd41bcf1b2194b8967bfe7f - unpetrify-ref: v0.17.3 + ref: dc10af4702115ee92803e432c18ef3a4350e0993 + unpetrify-ref: v0.17.4 repo: upstream:python-packages/eventlet + build-system: python-distutils build-depends: - greenlet - name: pastedeploy repo: upstream:python-packages/pastedeploy ref: 5ad87be617c2cc1dd31625688172e964db2756dc unpetrify-ref: 1.5.2 + build-system: python-distutils diff --git a/strata/openstack-services.morph b/strata/openstack-services.morph index 1feb1427..518e8d60 100644 --- a/strata/openstack-services.morph +++ b/strata/openstack-services.morph @@ -30,10 +30,12 @@ chunks: repo: upstream:openstack/oslo-rootwrap ref: f485b93f475b119e3b8fa6c9cf740207e2d2d7ac unpetrify-ref: 1.6.0 + build-system: python-distutils - name: py-amqp repo: upstream:python-packages/py-amqp ref: 875b10d1715def640042c7ff2f42c00a6c07eed1 unpetrify-ref: 1.4.6 + build-system: python-distutils - name: librabbitmq morph: strata/openstack-services/librabbitmq.morph repo: upstream:python-packages/librabbitmq @@ -45,10 +47,12 @@ chunks: repo: upstream:python-packages/anyjson ref: 016506078e94718e1fe750eb5083ab5ba07498c8 unpetrify-ref: 0.3.3 + build-system: python-distutils - name: kombu repo: upstream:python-packages/kombu ref: 0287b11ab0698d9c52ef1b1683ced23123d43ba4 unpetrify-ref: v3.0.26 + build-system: python-distutils build-depends: - anyjson - py-amqp @@ -57,50 +61,61 @@ chunks: repo: upstream:python-packages/sqlalchemy ref: ff34c480dfd2b8b7c72339d196f5477980a5124c unpetrify-ref: rel_0_9_8 + build-system: python-distutils - name: alembic repo: upstream:python-packages/alembic ref: 6ae4196acc0170ebef29f617b49376b371a8923c unpetrify-ref: rel_0_7_6 + build-system: python-distutils build-depends: - sqlalchemy - name: lockfile repo: upstream:python-packages/lockfile ref: 777758cdf4520271370b3338b86b5c66f9b104f0 unpetrify-ref: master + build-system: python-distutils - name: dogpile-core repo: upstream:python-packages/dogpile-core ref: 3e6f0f86b4161b48898e656039154092426e5cc8 unpetrify-ref: rel_0_4_1 + build-system: python-distutils - name: dogpile-cache repo: upstream:python-packages/dogpile-cache ref: 1c753914b335b4391bc5847a87b7c52ca81c2bc6 unpetrify-ref: rel_0_5_4 + build-system: python-distutils build-depends: - dogpile-core - name: pyjwt repo: upstream:python-packages/pyjwt ref: 739efeff4c6c1fc30ab5cf5eb0ac337e8ee107d7 unpetrify-ref: 0.2.3 + build-system: python-distutils - name: creole repo: upstream:python-packages/creole ref: 6390231688adb5d8678a71cd33204e9bca555d4a unpetrify-ref: v1.2.1 + build-system: python-distutils - name: pygments repo: upstream:python-packages/pygments ref: f41e8c594e76855611b3b3dfca300894bd29f1c4 unpetrify-ref: 2.0rc1 + build-system: python-distutils - name: docutils repo: upstream:python-packages/docutils ref: 1976ba91eff979abc3e13e5d8cb68324833af6a0 unpetrify-ref: docutils-0.12 + build-system: python-distutils - name: snowballstemmer repo: upstream:python-packages/snowballstemmer.git ref: f0d81ce1606d685029302ea073b59d9437d12569 unpetrify-ref: master + build-system: python-distutils - name: sphinx repo: upstream:python-packages/sphinx ref: e76c9771bad16e68cdb7deb18b4d13de0a718c68 unpetrify-ref: 1.3b1 + build-system: python-distutils build-depends: - pygments - docutils @@ -109,18 +124,22 @@ chunks: repo: upstream:python-packages/pystache.git ref: cce3ebd658f28aeb7dd54561554dedf5259303dc unpetrify-ref: baserock/v0.5.4 + build-system: python-distutils - name: pies repo: upstream:python-packages/pies.git ref: 593dcce07fdb3e8d0053a863a7aba7f2ce8a6c9c unpetrify-ref: 2.6.1 + build-system: python-distutils - name: natsort repo: upstream:python-packages/natsort.git ref: ce94d418c3849e891f0508b41f5bccc4ae1d4e4d unpetrify-ref: 3.5.1 + build-system: python-distutils - name: isort repo: upstream:python-packages/isort.git ref: 9d1b03b6e1fd2f87be1c635d6159a76a131f8155 unpetrify-ref: 3.9.0 + build-system: python-distutils build-depends: - pies - natsort @@ -128,14 +147,17 @@ chunks: repo: upstream:python-packages/pep8.git ref: 164066c4d85f212f5f4a11699b848942c678b947 unpetrify-ref: 1.5.7 + build-system: python-distutils - name: pyflakes repo: upstream:python-packages/pyflakes.git ref: 71b7b6776856912d50a0b9a85a8ea2a1dc7eb75c unpetrify-ref: 0.8.1 + build-system: python-distutils - name: smartypants repo: upstream:python-packages/smartypants.git ref: e89b6e7e119694edcd414a556c634d5ca85bff76 unpetrify-ref: v1.8.6 + build-system: python-distutils build-depends: - isort - pep8 @@ -144,6 +166,7 @@ chunks: repo: upstream:python-packages/pycco ref: 22e157e525760e843dba391ca85fbe9bd35fdc5b unpetrify-ref: master + build-system: python-distutils build-depends: - pygments - pystache @@ -152,56 +175,68 @@ chunks: repo: upstream:python-packages/dateutil ref: 8c6026ba09716a4e164f5420120bfe2ebb2d9d82 unpetrify-ref: trunk + build-system: python-distutils - name: posix-ipc-tarball repo: upstream:python-packages/posix-ipc-tarball ref: f3765db04b903b3671733e07cf1541a51966dd14 unpetrify-ref: posix_ipc-0.9.8 + build-system: python-distutils - name: paste repo: upstream:python-packages/paste ref: 4c177fce89fee925f0f4fbfde00ce2e1252562c0 unpetrify-ref: master + build-system: python-distutils - name: repoze-lru repo: upstream:python-packages/repoze-lru ref: 29c8281dee7fe8dae8c66c7c40ce7c058ec2ab0f unpetrify-ref: 0.6 + build-system: python-distutils - name: routes repo: upstream:python-packages/routes ref: 745a9207d9e48e309e292172543bc21075e65e09 unpetrify-ref: v2.1 + build-system: python-distutils build-depends: - repoze-lru - name: passlib repo: upstream:python-packages/passlib ref: f407312597727a08440e41bc8e31d3b3b334c66f unpetrify-ref: 1.6.2 + build-system: python-distutils - name: tempita repo: upstream:python-packages/tempita ref: b2b67795a009e9f825cbd855d766b78a00273f10 unpetrify-ref: 0.5 + build-system: python-distutils - name: numpy repo: upstream:python-packages/numpy.git ref: 65293874fb101907e1648e6b4fafd30d0aa1172a unpetrify-ref: baserock/v1.9.0 + build-system: python-distutils build-depends: - sphinx - name: websockify repo: upstream:python-packages/websockify ref: 2f025741f86419d4ad5702dabf5903db3dbfe77c unpetrify-ref: baserock/v0.6.1-1-g2f02574 + build-system: python-distutils build-depends: - numpy - name: httplib2 repo: upstream:python-packages/httplib2 ref: f9f797223d075874b0031aea832152688ec23fef unpetrify-ref: v0.9.1 + build-system: python-distutils - name: suds repo: upstream:python-packages/suds ref: e7a317f1a20a4d3c86ac85785bb32d24c3d1078f unpetrify-ref: baserock/release-0.4 + build-system: python-distutils - name: jsonrpclib repo: upstream:python-packages/jsonrpclib ref: 53c8ffcfe4dd1718086cc551dce8ac459e8abc67 unpetrify-ref: master + build-system: python-distutils - name: rtslib-fb repo: upstream:python-packages/rtslib-fb ref: 8ffb4739d596fb1aac5d62d173d1e6f80270af9d @@ -211,36 +246,43 @@ chunks: repo: upstream:python-packages/pexpect ref: 671417beb41c21f772687c565196fdde444b053b unpetrify-ref: 3.3 + build-system: python-distutils - name: ply repo: upstream:python-packages/ply.git ref: 6513f3537d80f483ec9c7e36d52e87f107a57f23 unpetrify-ref: master + build-system: python-distutils - name: jsonpath-rw repo: upstream:python-packages/jsonpath-rw ref: f4cfe56b8e8370116c5275ddcea970e9a68fd75d unpetrify-ref: 1.2.3 + build-system: python-distutils build-depends: - ply - name: logutils repo: upstream:python-packages/logutils.git ref: 095f14efbaaf838b7772bffd36a466abb9668efe unpetrify-ref: 0.3.3 + build-system: python-distutils - name: pecan repo: upstream:python-packages/pecan ref: c7f241fd6bb8a0b10e02b8b43aaf1810c312cfbf unpetrify-ref: 0.8.0 + build-system: python-distutils build-depends: - logutils - name: croniter repo: upstream:python-packages/croniter ref: 0c3aeac05791cb4ece9e30da29442e9cd5b22f36 unpetrify-ref: 0.3.5 + build-system: python-distutils build-depends: - dateutil - name: msgpack-python repo: upstream:python-packages/msgpack-python ref: 61bac2f586e82313a0e618093bfed2435cd18983 unpetrify-ref: 0.4.2 + build-system: python-distutils - name: qpid-python morph: strata/openstack-services/qpid-python.morph repo: upstream:python-packages/qpid-python @@ -250,6 +292,7 @@ chunks: repo: upstream:python-packages/simplegeneric-tarball ref: 601fab9b154c557dfd848d531a8969f4697d1aa2 unpetrify-ref: simplegeneric_0.8.1.orig + build-system: python-distutils - name: ipaddr-py morph: strata/openstack-services/ipaddr-py.morph ref: c813f4790d1092b1515ee18fe8270180ed3cc5cb @@ -259,6 +302,7 @@ chunks: repo: upstream:python-packages/wsme ref: 99d7668789cc6252398222549599d1363cddb081 unpetrify-ref: 0.6.1 + build-system: python-distutils build-depends: - ipaddr-py - simplegeneric-tarball @@ -266,6 +310,7 @@ chunks: repo: upstream:python-packages/pysnmp ref: 1b377afeaf9ee96ab1d48aeebb2b7a6d65a4ac9d unpetrify-ref: release_4_2_5_tag + build-system: python-distutils - name: thrift morph: strata/openstack-services/thrift.morph repo: upstream:thrift @@ -275,46 +320,55 @@ chunks: repo: upstream:python-packages/retrying ref: cab083eb5791615fadbc0c98ad77a70d64b77d0d unpetrify-ref: v1.3.1 + build-system: python-distutils - name: oslo-context repo: upstream:openstack/oslo-context ref: 1c4757a9fb41e47867bd9b8d390057ad7636b76f unpetrify-ref: 0.2.0 + build-system: python-distutils - name: oslo-middleware repo: upstream:openstack/oslo-middleware ref: bff184a2b5b1a0d3d22508a7544075378aca9e13 unpetrify-ref: 1.2.0 + build-system: python-distutils build-depends: - oslo-context - name: oslo-messaging repo: upstream:openstack/oslo-messaging ref: 562c41bb78f578ff9c27633c04ac6dd914c55f5a unpetrify-ref: 1.8.2 + build-system: python-distutils build-depends: - kombu - name: ordereddict repo: upstream:python-packages/ordereddict-tarball ref: 332cd0213829089dd827a32e7c5e64c41ce79cbc unpetrify-ref: ordereddict-1.1 + build-system: python-distutils - name: trollius repo: upstream:python-packages/trollius ref: fe6f8d61b1257bc01cdf4f789aaf4a8ec3d6f8ec unpetrify-ref: trollius-1.0.4 + build-system: python-distutils build-depends: - ordereddict - name: aioeventlet repo: upstream:python-packages/aioeventlet ref: 3cac0d7740592a380a7dadb2ddcdda000cae2bda unpetrify-ref: 0.4 + build-system: python-distutils build-depends: - trollius - name: urllib3 repo: upstream:python-packages/urllib3 ref: 8434c77d845255c4002b505c6c2d79c3b35def0d unpetrify-ref: 1.10.4 + build-system: python-distutils - name: oslo-concurrency repo: upstream:openstack/oslo-concurrency ref: a2473ed0a59e4553766ffcb1ee8f06cb98b14a48 unpetrify-ref: 1.8.0 + build-system: python-distutils build-depends: - posix-ipc-tarball - retrying @@ -322,6 +376,7 @@ chunks: repo: upstream:openstack/oslo-vmware ref: 5de2c31e9d24f40fc7d33ddb1ce407ffdc6f366c unpetrify-ref: 0.11.1 + build-system: python-distutils build-depends: - oslo-concurrency - suds @@ -331,10 +386,12 @@ chunks: repo: upstream:openstack/taskflow ref: 28bece7c7c97199b8d941b16865c3670c323589a unpetrify-ref: 0.7.1 + build-system: python-distutils - name: sqlalchemy-migrate repo: upstream:python-packages/sqlalchemy-migrate ref: e57ee4c3a4247c634980cbeba74d04a01253967d unpetrify-ref: 0.9.6 + build-system: python-distutils build-depends: - sqlalchemy - tempita @@ -342,6 +399,7 @@ chunks: repo: upstream:python-packages/oauthlib ref: fd239fca84644896b1971cf24bc6213d065adb86 unpetrify-ref: 0.7.2 + build-system: python-distutils build-depends: - docutils - creole @@ -352,16 +410,19 @@ chunks: repo: upstream:python-packages/happybase ref: 90a4b7ef741f0ecfe5145693f64c6f7180b9ba3d unpetrify-ref: 0.8 + build-system: python-distutils build-depends: - thrift - name: osprofiler repo: upstream:python-packages/osprofiler ref: bbe39b517263017c9db56ae1d904d08846eacff7 unpetrify-ref: 0.3.0 + build-system: python-distutils - name: pycadf repo: upstream:python-packages/pycadf ref: 9501f4f74c5d800ae43edbe52680e285cf98c710 unpetrify-ref: 0.9.0 + build-system: python-distutils build-depends: - oslo-context - oslo-messaging @@ -370,6 +431,7 @@ chunks: repo: upstream:openstack/keystonemiddleware ref: 0e63b0e13d0a7919fddd7576c99bc15a45d31a9f unpetrify-ref: 1.5.1 + build-system: python-distutils build-depends: - pycadf - oslo-context @@ -377,6 +439,7 @@ chunks: repo: upstream:openstack/oslo-db ref: 3e6a30c396aa42ef0eccb5b3625af728d8d3f437 unpetrify-ref: 1.7.1 + build-system: python-distutils build-depends: - alembic - sqlalchemy @@ -385,6 +448,7 @@ chunks: repo: upstream:openstack/glance_store.git ref: ea88e503b617a7ac9a0ae7e537d6517e9992a104 unpetrify-ref: 0.4.0 + build-system: python-distutils build-depends: - ordereddict - oslo-concurrency @@ -392,16 +456,19 @@ chunks: repo: upstream:openstack/oslo-log ref: 54e3d0e705accfaa4c73a01fc2ea1480fcc0024e unpetrify-ref: 1.0.0 + build-system: python-distutils build-depends: - oslo-context - name: oslo-policy repo: upstream:openstack/oslo-policy ref: 4c8f38cd1d088c46be314b47f6774e721813c6d9 unpetrify-ref: 0.3.2 + build-system: python-distutils - name: semantic-version repo: upstream:python-packages/semantic-version ref: 2174bdcae6e46f5f68f5b8ea984a695db9f41bcf unpetrify-ref: v2.4.1 + build-system: python-distutils - name: glance morph: strata/openstack-services/glance.morph repo: upstream:openstack/glance @@ -435,10 +502,12 @@ chunks: repo: upstream:python-packages/sqlparse ref: 991e7348075accae6d08025212251af21e92e664 unpetrify-ref: 0.1.13 + build-system: python-distutils - name: pysaml2 repo: upstream:python-packages/pysaml2.git ref: 13ff5e8899300c9b359fa1bdfdb3d412be0d7356 unpetrify-ref: 2.4.0 + build-system: python-distutils - name: keystone morph: strata/openstack-services/keystone.morph repo: upstream:openstack/keystone @@ -487,22 +556,27 @@ chunks: repo: upstream:python-packages/wsgiref.git ref: e8360785eef259394e13b2062407edc3c2cbc1e0 unpetrify-ref: baserock/master + build-system: python-distutils - name: rfc3986 repo: upstream:python-packages/python-rfc3986.git ref: 9817ec3e47bca8fba9a7cac56d785e9d644f7473 unpetrify-ref: rfc3986-0.2.0 + build-system: python-distutils - name: urwid repo: upstream:python-packages/urwid ref: 838839f7a300a774240d52f943aafd6ff44b2413 unpetrify-ref: release-1.3.0 + build-system: python-distutils - name: configshell-fb repo: upstream:python-packages/configshell-fb ref: 8c151ccdd75956da60b2304417c41a60a2c28231 unpetrify-ref: v1.1.fb17 + build-system: python-distutils - name: targetcli-fb repo: upstream:python-packages/targetcli ref: c62610f3c2da6b4d364028c18bcc7f0d3da54477 unpetrify-ref: v2.1.fb39 + build-system: python-distutils build-depends: - configshell-fb - rtslib-fb @@ -510,6 +584,7 @@ chunks: repo: upstream:sysfsutils ref: 237bf36e664db92f95b75067bf0f246726993254 unpetrify-ref: sysfsutils-2_1_0 + build-system: autotools - name: open-iscsi morph: strata/openstack-services/open-iscsi.morph repo: upstream:open-iscsi @@ -565,18 +640,22 @@ chunks: repo: upstream:python-packages/pymemcache ref: 0646937c2bfebdb557ec2c01f0e42a9af79ad49d unpetrify-ref: v1.2.9 + build-system: python-distutils - name: sysv_ipc-tarball repo: upstream:python-packages/sysv-ipc-tarball.git ref: a77e3a63f004e6ee789fa05e4a5bbc333b1529f1 unpetrify-ref: sysv_ipc-0.6.8 + build-system: python-distutils - name: redis-py repo: upstream:python-packages/redis-py ref: 4d0b0afe9c9a431ed50c3e9fb95a0aa88b1f1038 unpetrify-ref: 2.10.3 + build-system: python-distutils - name: tooz repo: upstream:python-packages/tooz ref: 8086661f404e61c22f0dd1d07b57a864862a0869 unpetrify-ref: 0.13.2 + build-system: python-distutils build-depends: - pymemcache - msgpack-python @@ -586,14 +665,17 @@ chunks: repo: upstream:python-packages/kafka-python ref: 8675c3e3e620df5ba9fd7e570c554b773429bd78 unpetrify-ref: v0.9.3 + build-system: python-distutils - name: werkzeug repo: upstream:python-packages/werkzeug ref: 96e49709d627a7766077cff4c98ebf3cad868ceb unpetrify-ref: v0.10.4 + build-system: python-distutils - name: requests-aws repo: upstream:python-packages/python-requests-aws ref: 48fe401c78eb1b1048cd20e2d26015585a7986cb unpetrify-ref: master + build-system: python-distutils - name: ceilometer repo: upstream:openstack/ceilometer morph: strata/openstack-services/ceilometer.morph @@ -627,10 +709,12 @@ chunks: repo: upstream:openstack/django_openstack_auth ref: 0e1f7b78277850634992a594132921efb83256e0 unpetrify-ref: 1.2.0 + build-system: python-distutils - name: pint repo: upstream:python-packages/pint ref: e7e7de5ca2e1c19963be8a918369fb19186f9a73 unpetrify-ref: 0.6 + build-system: python-distutils - name: horizon morph: strata/openstack-services/horizon.morph repo: upstream:openstack/horizon @@ -650,10 +734,12 @@ chunks: repo: upstream:python-packages/pyserial ref: bcfc1ec2fdb9a8c9c867481d7673e85fe512e667 unpetrify-ref: release2_7 + build-system: python-distutils - name: tempest-lib repo: upstream:openstack/tempest-lib ref: c307ffc525d896e2071319c8067aec805804f92b unpetrify-ref: 0.5.0 + build-system: python-distutils - name: tempest morph: strata/openstack-services/tempest.morph repo: upstream:openstack/tempest diff --git a/strata/ostree-core.morph b/strata/ostree-core.morph index bcf7d61b..5d0297eb 100644 --- a/strata/ostree-core.morph +++ b/strata/ostree-core.morph @@ -3,14 +3,30 @@ kind: stratum build-depends: - morph: strata/core.morph - morph: strata/libsoup-common.morph +- morph: strata/foundation.morph chunks: +- name: libassuan + morph: strata/ostree-core/libassuan.morph + repo: upstream:libassuan + ref: cdb1e6484d6f094f8e795bfec5b314ec524a90f8 + unpetrify-ref: libassuan-2.3.0 +- name: gpgme + morph: strata/ostree-core/gpgme.morph + repo: upstream:gpgme + ref: 107bff70edb611309f627058dd4777a5da084b1a + unpetrify-ref: gpgme-1.6.0 + build-depends: + - libassuan - name: libgsystem repo: upstream:libgsystem ref: 8231b8ad4a4ee35e4b11fae5f6e7cddabf1c51ae unpetrify-ref: master + build-system: autotools - name: ostree repo: upstream:ostree - ref: c9704e9802dfeda9b5a138535c59e98df3dd7196 - unpetrify-ref: baserock/morph + ref: 45ec78735daf72da1998f9df2887ea9b5e2600c3 + unpetrify-ref: baserock/v2015.9 + build-system: autotools build-depends: + - gpgme - libgsystem diff --git a/strata/ostree-core/gpgme.morph b/strata/ostree-core/gpgme.morph new file mode 100644 index 00000000..cf938f31 --- /dev/null +++ b/strata/ostree-core/gpgme.morph @@ -0,0 +1,7 @@ +name: gpgme +kind: chunk +build-system: autotools +pre-configure-commands: +- autoreconf -fi +configure-commands: +- ./configure --prefix="$PREFIX" --enable-maintainer-mode diff --git a/strata/ostree-core/libassuan.morph b/strata/ostree-core/libassuan.morph new file mode 100644 index 00000000..baa1e902 --- /dev/null +++ b/strata/ostree-core/libassuan.morph @@ -0,0 +1,7 @@ +name: libassuan +kind: chunk +build-system: autotools +pre-configure-commands: +- autoreconf -fi +configure-commands: +- ./configure --prefix="$PREFIX" --enable-maintainer-mode diff --git a/strata/pcre-utils.morph b/strata/pcre-utils.morph index 8d0c2489..6d2b4a0f 100644 --- a/strata/pcre-utils.morph +++ b/strata/pcre-utils.morph @@ -7,3 +7,4 @@ chunks: repo: upstream:pcre ref: 2720152c58e13e7cc7403642ec33127101b9971b unpetrify-ref: baserock/morph + build-system: autotools diff --git a/strata/python-cliapp.morph b/strata/python-cliapp.morph index 495a6a2e..d143007d 100644 --- a/strata/python-cliapp.morph +++ b/strata/python-cliapp.morph @@ -3,7 +3,7 @@ kind: stratum description: | Cliapp command line application framework. build-depends: -- morph: strata/python-core.morph +- morph: strata/python2-core.morph chunks: - name: python-coveragepy morph: strata/python-cliapp/python-coveragepy.morph @@ -14,11 +14,13 @@ chunks: repo: upstream:python-coverage-test-runner ref: 8ea9421ac3384b2e88e0c36f2cfa52586c4798b7 unpetrify-ref: baserock/morph + build-system: python-distutils build-depends: - python-coveragepy - name: cliapp repo: upstream:cliapp ref: cec20cedd062a3aef1b04f997e77b45090c07806 unpetrify-ref: baserock/morph + build-system: python-distutils build-depends: - python-coverage-test-runner diff --git a/strata/python-common.morph b/strata/python-common.morph index d329dc4d..9d844a49 100644 --- a/strata/python-common.morph +++ b/strata/python-common.morph @@ -2,7 +2,7 @@ name: python-common kind: stratum description: Common dependencies of some python chunks build-depends: -- morph: strata/python-core.morph +- morph: strata/python2-core.morph chunks: - name: pycrypto morph: strata/python-common/pycrypto.morph @@ -13,10 +13,12 @@ chunks: repo: upstream:python-packages/ecdsa ref: 36e9cfa80fcf8b53119adc787e54a5892ec1eb2c unpetrify-ref: python-ecdsa-0.11 + build-system: python-distutils - name: paramiko repo: upstream:paramiko ref: 424ba615c2a94d3b059e7f24db1a1093a92d8d22 unpetrify-ref: v1.15.2 + build-system: python-distutils build-depends: - pycrypto - ecdsa @@ -24,51 +26,63 @@ chunks: repo: upstream:markupsafe ref: feb1d70c16df62f60dcb521d127fdad8819fc036 unpetrify-ref: 0.23 + build-system: python-distutils - name: jinja2 repo: upstream:jinja2 ref: 762c612e7276889aac265645da00e62e33d1573c unpetrify-ref: 2.7.3 + build-system: python-distutils build-depends: - markupsafe - name: python-json-pointer repo: upstream:python-json-pointer ref: 34073e561261cb413b9bdff5beac31b070d98ea2 unpetrify-ref: v1.4 + build-system: python-distutils - name: python-json-patch repo: upstream:python-json-patch ref: e4da658a5dc9f68d3386017ffdcc8e07d22b51a3 unpetrify-ref: v1.8 + build-system: python-distutils build-depends: - python-json-pointer - name: python-prettytable repo: upstream:python-prettytable ref: bea6a50e4da00074b35b57232771cea58b89b3e0 unpetrify-ref: 0.7.2-RELEASE + build-system: python-distutils - name: configobj repo: upstream:configobj-git ref: 9d2aab01c77dce600b296ba9da1163cc0bbc14e0 unpetrify-ref: v5.0.6 + build-system: python-distutils - name: python-mimeparse repo: upstream:python-packages/python-mimeparse.git ref: 2d600d3fc4a386af69d20fba433843b4df2b3c92 unpetrify-ref: master + build-system: python-distutils - name: kazoo repo: upstream:python-packages/kazoo.git ref: 93a718ea4c20df797766742c3d74de281613c651 unpretrify-ref: 2.0 + build-system: python-distutils - name: webob repo: upstream:python-packages/webob ref: ae0ac90f22f9e1ff351e445f92330efd89195f51 unpetrify-ref: 1.4 + build-system: python-distutils - name: python-decorator repo: upstream:python-packages/python-decorator ref: b02f7a254c3679dfac57a824e08dd02ced850636 unpetrify-ref: decorator-3.4.0 + build-system: python-distutils - name: networkx repo: upstream:python-packages/networkx ref: 8ac796aba866ade1a56b83e30f25ed392ca3512c unpetrify-ref: networkx-1.9.1 + build-system: python-distutils - name: boto repo: upstream:boto ref: 2517f660f8ef9012708d46da3a36ab967993d2f6 unpetrify-ref: 2.33.0 + build-system: python-distutils diff --git a/strata/python-core.morph b/strata/python-core.morph deleted file mode 100644 index 0f9d1653..00000000 --- a/strata/python-core.morph +++ /dev/null @@ -1,52 +0,0 @@ -name: python-core -kind: stratum -description: Core python packages -build-depends: -- morph: strata/core.morph -chunks: -- name: python-setuptools - morph: strata/core/python-setuptools.morph - repo: upstream:python-setuptools-bitbucket - ref: 0aa6a4de5931d02876428388678802db2371fd37 - unpetrify-ref: baserock/master -- name: mako - repo: upstream:python-packages/mako.git - ref: 285bc818a50ccc0f9549630f7c4f4c250585c3e7 - unpetrify-ref: rel_1_0_0 - build-depends: - - python-setuptools -- name: pip - repo: upstream:pip - ref: ea680f204fb0e48789710c22c8f597a9bf01bc16 - unpetrify-ref: baserock/master - build-depends: - - python-setuptools -- name: pbr - repo: upstream:pbr - ref: aef4f7ef4faec987d553d1ca40b55951235af0b1 - unpetrify-ref: 0.10.7 - build-depends: - - pip -- name: python-requests - repo: upstream:python-requests - ref: b83131779c701720a9ae9efae78996277d416269 - unpetrify-ref: v2.5.1 -- name: six - repo: upstream:six - ref: 8cfbff6b764af86d825086fa1637aa009e90d75a - unpetrify-ref: 1.9.0 -- name: pyyaml - morph: strata/python-core/pyyaml.morph - repo: upstream:pyyaml - ref: d9fbcceaed39d955f6871b07c61dc42f824285c1 - unpetrify-ref: baserock/morph - build-depends: - - python-setuptools -- name: python-lxml - repo: upstream:python-lxml - ref: 14505bc62f5f1fc9fb0ff007955f3e67ab4562bb - unpetrify-ref: lxml-3.4.0 -- name: python-markdown - repo: upstream:python-markdown - ref: f0c5b71acbc02af60a33d67c59558bb513b25e74 - unpetrify-ref: 2.5.1-final diff --git a/strata/python-pygobject.morph b/strata/python-pygobject.morph index 53e9fd72..a6667be2 100644 --- a/strata/python-pygobject.morph +++ b/strata/python-pygobject.morph @@ -3,7 +3,7 @@ kind: stratum description: | Python GObject bindings build-depends: -- morph: strata/core.morph +- morph: strata/python2-core.morph - morph: strata/glib-common.morph chunks: - name: pygobject diff --git a/strata/python-pygobject/pygobject.morph b/strata/python-pygobject/pygobject.morph index a423537e..72382f93 100644 --- a/strata/python-pygobject/pygobject.morph +++ b/strata/python-pygobject/pygobject.morph @@ -2,4 +2,4 @@ name: pygobject kind: chunk build-system: autotools configure-commands: -- ./autogen.sh --prefix="$PREFIX" --disable-cairo +- ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc --disable-cairo diff --git a/strata/python-tools.morph b/strata/python-tools.morph index e380530f..d61fe150 100644 --- a/strata/python-tools.morph +++ b/strata/python-tools.morph @@ -3,23 +3,27 @@ kind: stratum description: | A stratum for useful python tools that we don't want to include in core. build-depends: -- morph: strata/python-core.morph +- morph: strata/python2-core.morph chunks: - name: virtualenv repo: upstream:python-packages/virtualenv ref: 9205ff46a67130e8835f14bb4f802fd59e7dcf2c unpetrify-ref: 12.0.5 + build-system: python-distutils ## Pylint - required in openstack-services.morph - name: astroid repo: upstream:python-packages/astroid ref: 194dc114a33b80b4bfbbeb73f36712848f696025 unpetrify-ref: astroid-1.3.5 + build-system: python-distutils - name: logilab-common repo: upstream:python-packages/logilab-common ref: d1d8f793af6d015d885b9ea67b5741d5a093e2f4 unpetrify-ref: logilab-common-version-0.62.0 + build-system: python-distutils - name: pylint repo: upstream:python-packages/pylint ref: ba998d7a4e5fce0ea3a3e701ff446bbe4ca406b5 unpetrify-ref: pylint-1.4.2 + build-system: python-distutils diff --git a/strata/python-wsgi.morph b/strata/python-wsgi.morph index 289d27ba..cd72e398 100644 --- a/strata/python-wsgi.morph +++ b/strata/python-wsgi.morph @@ -3,13 +3,15 @@ kind: stratum description: | Python modules for web applications using Web Server Gateway Interface. build-depends: -- morph: strata/python-core.morph +- morph: strata/python2-core.morph chunks: - name: bottle repo: upstream:bottle ref: 5238c615b3ec198fedebb0fcaad4458e3d68d70f unpetrify-ref: baserock/morph + build-system: python-distutils - name: flup repo: upstream:flup ref: 0f97c5e0ab7d9827506120efc22af3a9c21d1d70 unpetrify-ref: baserock/morph + build-system: python-distutils diff --git a/strata/python2-core.morph b/strata/python2-core.morph new file mode 100644 index 00000000..a39063ac --- /dev/null +++ b/strata/python2-core.morph @@ -0,0 +1,93 @@ +name: python2-core +kind: stratum +description: Core python 2 packages +build-depends: +- morph: strata/core.morph +chunks: +- name: python2 + morph: strata/python2-core/python2.morph + repo: upstream:cpython + ref: 57af3f22d11600ca98c0c9073d0b3b57d43f7c4b + unpetrify-ref: v2.7.10 +- name: python-setuptools + repo: upstream:python-setuptools-bitbucket + ref: 0aa6a4de5931d02876428388678802db2371fd37 + unpetrify-ref: baserock/master + build-system: python-distutils + build-depends: + - python2 +- name: mako + repo: upstream:python-packages/mako.git + ref: 285bc818a50ccc0f9549630f7c4f4c250585c3e7 + unpetrify-ref: rel_1_0_0 + build-system: python-distutils + build-depends: + - python2 + - python-setuptools +- name: pbr + repo: upstream:pbr + ref: aef4f7ef4faec987d553d1ca40b55951235af0b1 + unpetrify-ref: 0.10.7 + build-system: python-distutils + build-depends: + - python2 + - python-setuptools +- name: python-requests + repo: upstream:python-requests + ref: b83131779c701720a9ae9efae78996277d416269 + unpetrify-ref: v2.5.1 + build-system: python-distutils + build-depends: + - python2 +- name: six + repo: upstream:six + ref: 8cfbff6b764af86d825086fa1637aa009e90d75a + unpetrify-ref: 1.9.0 + build-system: python-distutils + build-depends: + - python2 +- name: pyyaml + morph: strata/python2-core/pyyaml.morph + repo: upstream:pyyaml + ref: d9fbcceaed39d955f6871b07c61dc42f824285c1 + unpetrify-ref: baserock/morph + build-depends: + - python2 + - python-setuptools +- name: cython2 + repo: upstream:cython + ref: 4dd8e762fa51d01775506fbbc102c45dbcea065d + unpetrify-ref: 0.22 + build-system: python-distutils + build-depends: + - python2 +- name: python-lxml + repo: upstream:python-lxml + ref: 14505bc62f5f1fc9fb0ff007955f3e67ab4562bb + unpetrify-ref: lxml-3.4.0 + build-system: python-distutils + build-depends: + - python2 + - cython2 +- name: python-markdown + repo: upstream:python-markdown + ref: f0c5b71acbc02af60a33d67c59558bb513b25e74 + unpetrify-ref: 2.5.1-final + build-system: python-distutils + build-depends: + - python2 +- name: libxml2-python2 + repo: upstream:libxml2 + ref: f4e5a6994ed230dfa3fb5b5c3fd94c4993ef1ba7 + unpetrify-ref: v2.9.1 + build-system: autotools + build-depends: + - python2 +- name: jsonschema + repo: upstream:jsonschema + ref: 35b60f390098d3306c03eee27ceec8cf8a493579 + unpetrify-ref: v2.3.0 + build-system: python-distutils + build-depends: + - python2 + - python-setuptools diff --git a/strata/core/cpython.morph b/strata/python2-core/python2.morph index d0c80220..d5f6913a 100644 --- a/strata/core/cpython.morph +++ b/strata/python2-core/python2.morph @@ -1,11 +1,13 @@ -name: cpython +name: python2 kind: chunk build-system: autotools configure-commands: - | ./configure --prefix="$PREFIX" \ --enable-shared \ + --with-ensurepip=upgrade \ --with-system-expat \ --with-system-ffi post-install-commands: +- ln -sf python2.7 "$DESTDIR"/"$PREFIX"/bin/python - test -x "$DESTDIR"/"$PREFIX"/bin/python2 || ln -s python2.7 "$DESTDIR"/"$PREFIX"/bin/python2 diff --git a/strata/python-core/pyyaml.morph b/strata/python2-core/pyyaml.morph index 8ebd7b57..8ebd7b57 100644 --- a/strata/python-core/pyyaml.morph +++ b/strata/python2-core/pyyaml.morph diff --git a/strata/python3-core.morph b/strata/python3-core.morph deleted file mode 100644 index f0da65fc..00000000 --- a/strata/python3-core.morph +++ /dev/null @@ -1,11 +0,0 @@ -name: python3-core -kind: stratum -description: Core python3 packages -build-depends: -- morph: strata/core.morph -chunks: -- name: python3 - morph: strata/python3-core/python3.morph - repo: upstream:cpython - ref: 3f1e8a3de39ff8a807720d57f49a91d7449435ad - unpetrify-ref: v3.4.3 diff --git a/strata/python3-core/python3.morph b/strata/python3-core/python3.morph deleted file mode 100644 index f02452d4..00000000 --- a/strata/python3-core/python3.morph +++ /dev/null @@ -1,7 +0,0 @@ -name: python3 -kind: chunk -build-system: autotools -configure-commands: -- ./configure --prefix="$PREFIX" --enable-shared -post-install-commands: -- test -x "$DESTDIR"/"$PREFIX"/bin/python3 || ln -s python3.4 "$DESTDIR"/"$PREFIX"/bin/python3 diff --git a/strata/python3-gobject.morph b/strata/python3-gobject.morph new file mode 100644 index 00000000..1e2db195 --- /dev/null +++ b/strata/python3-gobject.morph @@ -0,0 +1,13 @@ +name: python3-gobject +kind: stratum +description: | + Python 3 GObject bindings +build-depends: +- morph: strata/core.morph +- morph: strata/glib-common.morph +chunks: +- name: python3-gobject + morph: strata/python3-gobject/python3-gobject.morph + repo: upstream:pygobject + ref: 8e7f6f1458cf1c162c13422c72562b00433b762b + unpetrify-ref: pygobject-3-18 diff --git a/strata/python3-gobject/python3-gobject.morph b/strata/python3-gobject/python3-gobject.morph new file mode 100644 index 00000000..8f165ad1 --- /dev/null +++ b/strata/python3-gobject/python3-gobject.morph @@ -0,0 +1,5 @@ +name: python3-gobject +kind: chunk +build-system: autotools +configure-commands: +- ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc --disable-cairo --with-python=python3 diff --git a/strata/qt4-tools.morph b/strata/qt4-tools.morph index 698dc5ce..577c467d 100644 --- a/strata/qt4-tools.morph +++ b/strata/qt4-tools.morph @@ -2,15 +2,11 @@ name: qt4-tools kind: stratum description: Qt4 Development Libraries and Tools build-depends: +- morph: strata/icu-common.morph - morph: strata/tools.morph - morph: strata/x-generic.morph - morph: strata/multimedia-gstreamer-0.10.morph chunks: -- name: icu - morph: strata/qt4-tools/icu.morph - repo: upstream:icu - ref: ba023548a3bff7277cbea4acade3042ce9d8949e - unpetrify-ref: baserock/morph - name: ruby-1.8 morph: strata/qt4-tools/ruby-1.8.morph repo: upstream:ruby @@ -29,5 +25,4 @@ chunks: ref: a182f020bc1703c20d86ba18f2f6b4ea8889de84 unpetrify-ref: baserock/morph build-depends: - - icu - ruby-1.9 diff --git a/strata/qt4-tools/icu.morph b/strata/qt4-tools/icu.morph deleted file mode 100644 index 37dec07e..00000000 --- a/strata/qt4-tools/icu.morph +++ /dev/null @@ -1,8 +0,0 @@ -name: icu -kind: chunk -configure-commands: -- cd source; ./runConfigureICU Linux --prefix=/usr -build-commands: -- cd source; unset TARGET ; make -install-commands: -- cd source; unset TARGET ; make DESTDIR="$DESTDIR" install diff --git a/strata/qt5-tools-qtwayland-genivi.morph b/strata/qt5-tools-qtwayland-genivi.morph new file mode 100644 index 00000000..1a93c5d3 --- /dev/null +++ b/strata/qt5-tools-qtwayland-genivi.morph @@ -0,0 +1,13 @@ +name: qt5-tools-qtwayland-genivi +kind: stratum +description: | + Modified version of Qt5 Wayland which makes Qt applications use the + LayerManager API +build-depends: +- morph: strata/qt5-tools.morph +chunks: +- name: qtwayland@genivi + repo: upstream:qt5/qtwayland + ref: 394c54253d5d965e353b618fd373fa89f79cbd96 + unpetrify-ref: baserock/genivi-5.4.0-wip + build-system: qmake diff --git a/strata/qt5-tools.morph b/strata/qt5-tools.morph index 7fb8403e..2a5a61ac 100644 --- a/strata/qt5-tools.morph +++ b/strata/qt5-tools.morph @@ -2,21 +2,15 @@ name: qt5-tools kind: stratum description: Qt5 Development Libraries and Tools build-depends: +- morph: strata/icu-common.morph - morph: strata/tools.morph - morph: strata/x-generic.morph chunks: -- name: icu - morph: strata/qt5-tools/icu.morph - repo: upstream:icu - ref: ba023548a3bff7277cbea4acade3042ce9d8949e - unpetrify-ref: baserock/morph - name: qtbase morph: strata/qt5-tools/qtbase.morph repo: upstream:qt5/qtbase ref: 5367fa356233da4c0f28172a8f817791525f5457 unpetrify-ref: v5.4.0 - build-depends: - - icu - name: qtsvg morph: strata/qt5-tools/qtsvg.morph repo: upstream:qt5/qtsvg diff --git a/strata/qt5-tools/icu.morph b/strata/qt5-tools/icu.morph deleted file mode 100644 index f9532f04..00000000 --- a/strata/qt5-tools/icu.morph +++ /dev/null @@ -1,9 +0,0 @@ -name: icu -kind: chunk -configure-commands: -- sed -e 's/LDFLAGSICUDT/#LDFLAGSICUDT/' -i source/config/mh-linux -- cd source; ./runConfigureICU Linux --prefix=/usr -build-commands: -- cd source; unset TARGET ; make -install-commands: -- cd source; unset TARGET ; make DESTDIR="$DESTDIR" install diff --git a/strata/qt5-tools/qtwebkit.morph b/strata/qt5-tools/qtwebkit.morph index c9348aca..c76db433 100644 --- a/strata/qt5-tools/qtwebkit.morph +++ b/strata/qt5-tools/qtwebkit.morph @@ -1,6 +1,5 @@ name: qtwebkit kind: chunk -max-jobs: 1 configure-commands: - QMAKEPATH=/qtwebkit.build/Tools/qmake/mkspecs qmake WebKit.pro build-commands: diff --git a/strata/ruby.morph b/strata/ruby.morph index eba231be..10eb932e 100644 --- a/strata/ruby.morph +++ b/strata/ruby.morph @@ -19,6 +19,7 @@ chunks: repo: upstream:libyaml-hg ref: 0577078d6625a7bf06e6bc7fb26a43e27400b17e unpetrify-ref: master + build-system: autotools - name: ruby morph: strata/ruby/ruby.morph repo: upstream:ruby diff --git a/strata/samba.morph b/strata/samba.morph index 33dcd856..97e72c7a 100644 --- a/strata/samba.morph +++ b/strata/samba.morph @@ -4,6 +4,7 @@ description: Simple samba server build-depends: - morph: strata/core.morph - morph: strata/foundation.morph +- morph: strata/python2-core.morph chunks: - name: samba morph: strata/samba/samba.morph diff --git a/strata/swift.morph b/strata/swift.morph index 6afcc832..41fd0c75 100644 --- a/strata/swift.morph +++ b/strata/swift.morph @@ -10,6 +10,7 @@ chunks: repo: upstream:python-packages/dnspython ref: e1369c62d14f82b80ef11197a490ace5d43bb3f3 unpetrify-ref: v1.12.0 + build-system: python-distutils - name: xattr morph: strata/swift/xattr.morph repo: upstream:python-packages/xattr @@ -29,12 +30,14 @@ chunks: repo: upstream:jerasure ref: ff7032153ea230fb59596f1f8a0e9ad8653addfb unpetrify-ref: v2 + build-system: autotools build-depends: - gf-complete - name: pyeclib repo: upstream:python-packages/pyeclib ref: aa58aa887c2327e1394d6f28b3b6b7ab8f190b2b unpetrify-ref: v1.0.7 + build-system: python-distutils build-depends: - liberasurecode - gf-complete @@ -43,6 +46,7 @@ chunks: repo: upstream:openstack/swift ref: f8dee761bd36f857aa1288c27e095907032fad68 unpetrify-ref: 2.3.0 + build-system: python-distutils build-depends: - dnspython - xattr diff --git a/strata/test-tools.morph b/strata/test-tools.morph index 7754e91d..49d53972 100644 --- a/strata/test-tools.morph +++ b/strata/test-tools.morph @@ -8,18 +8,22 @@ chunks: repo: upstream:python-packages/python-test-extras.git ref: cdeb596f01241e9c779332e86f6edcd0c2e8e9f0 unpetrify-ref: master + build-system: python-distutils - name: check repo: upstream:check ref: 8c872aca6675e95fa47e7514e28fbdf25fce6170 unpetrify-ref: 0.9.8 + build-system: autotools - name: cppunit repo: upstream:cppunit ref: 8133cf2b977f013216f0a41b6fcb740410d83926 unpetrify-ref: 1.13.2 + build-system: autotools - name: testtools repo: upstream:python-packages/testtools ref: ee9946228ce5a03a84cf146027de0a8a9a46c4fe unpetrify-ref: testools-1.1.0 + build-system: python-distutils build-depends: - python-test-extras - name: subunit @@ -36,12 +40,14 @@ chunks: repo: upstream:python-packages/fixtures ref: 9f9d89ce718463b24cd3910b9a99efb60b3c9e1b unpetrify-ref: 0.3.16 + build-system: python-distutils build-depends: - testtools - name: testrepository repo: upstream:python-packages/testrepository ref: 6419a3dcaabaf09eaf438c6d8d85c90eba7a2b91 unpetrify-ref: 0.0.19 + build-system: python-distutils build-depends: - fixtures - subunit @@ -50,20 +56,24 @@ chunks: repo: upstream:python-packages/testscenarios ref: bccfaa71a2def5590161b6d1a247cf23c45a8b4d unpetrify-ref: trunk + build-system: python-distutils build-depends: - testtools - name: mox repo: upstream:python-packages/mox ref: 160491d0384285698d726b1af21277f336107f51 unpetrify-ref: master + build-system: python-distutils - name: mock repo: upstream:python-packages/mock ref: 35b35f7ad239005a950f870af57b44dbdc99d66b unpetrify-ref: master + build-system: python-distutils - name: oslotest repo: upstream:openstack/oslotest ref: cfdb562a6e07728570ca624a8c4faf3f5b61423b unpetrify-ref: 1.2.0 + build-system: python-distutils build-depends: - fixtures - subunit @@ -76,31 +86,38 @@ chunks: repo: upstream:python-packages/pymox ref: 444fa40f4edb529efbffa2da8dbd97e9b8564b5c unpetrify-ref: master + build-system: python-distutils - name: mocker repo: upstream:python-packages/mocker ref: f7f87e4ac1c52342162cf2035f5fe3d273f8b07f unpetrify-ref: master + build-system: python-distutils - name: zake repo: upstream:python-packages/zake ref: 436bab3306aeec420f1281f34bd5d26d7f81038c unpetrify-ref: 0.2.1 + build-system: python-distutils build-depends: - testtools - name: nose repo: upstream:python-packages/nose ref: 08d134270b035dac3310cd877bb0fe9ab678303a unpetrify-ref: release_1.3.4 + build-system: python-distutils - name: beautifulsoup4 repo: upstream:python-packages/beautifulsoup4.git ref: bcd7af0e9159d97aa511fb2d879424d1c1c5aadf + build-system: python-distutils - name: waitress repo: upstream:python-packages/waitress.git ref: b795d573a5a9e6e39b46a6e82da367a6a5db8dbd unpetrify-ref: 0.8.9 + build-system: python-distutils - name: webtest repo: upstream:python-packages/webtest.git ref: 6a24fba456d1c4ac2609b90f1fdc377c595608a4 unpetrify-ref: 2.0.16 + build-system: python-distutils build-depends: - waitress - beautifulsoup4 @@ -108,6 +125,7 @@ chunks: repo: upstream:python-packages/testresources ref: ef938bcce0e436f9e9ffef932a898dc248a1d6ea unpetrify-ref: 0.2.7 + build-system: python-distutils build-depends: - testtools - fixtures diff --git a/strata/tools.morph b/strata/tools.morph index bfde546f..9fc1f8c7 100644 --- a/strata/tools.morph +++ b/strata/tools.morph @@ -17,8 +17,9 @@ chunks: unpetrify-ref: gdb-7.8-branch - name: linux-user-chroot repo: upstream:linux-user-chroot - ref: d25cc110f69e6e71a95b4ac532dcfc5423d4a16b - unpetrify-ref: baserock/morph + ref: 40e0b71d556414dfe150a74937f2c8a68d351d6d + unpetrify-ref: v2015.1 + build-system: autotools - name: lsof morph: strata/tools/lsof.morph repo: upstream:lsof @@ -28,6 +29,7 @@ chunks: repo: upstream:strace ref: 6d8c0637e8dd0f65c667af33c612230552419db1 unpetrify-ref: v4.8 + build-system: autotools - name: vala-bootstrap morph: strata/tools/vala-bootstrap.morph repo: upstream:vala @@ -37,6 +39,7 @@ chunks: repo: upstream:vala ref: 5f6ebe007050be12bdc4aa7c902ae4059f28874a unpetrify-ref: 0.28.0 + build-system: autotools build-depends: - vala-bootstrap - name: u-boot @@ -58,6 +61,7 @@ chunks: repo: upstream:sudo ref: a4769dc7999b53260325fb89945bef85714fb338 unpetrify-ref: baserock/morph + build-system: autotools - name: procps-ng morph: strata/tools/procps-ng.morph repo: upstream:procps-ng diff --git a/strata/trove.morph b/strata/trove.morph index 984050b7..5175376e 100644 --- a/strata/trove.morph +++ b/strata/trove.morph @@ -2,7 +2,7 @@ name: trove kind: stratum description: Trove software build-depends: -- morph: strata/python-core.morph +- morph: strata/python2-core.morph - morph: strata/tools.morph - morph: strata/morph-utils.morph - morph: strata/pcre-utils.morph @@ -71,7 +71,7 @@ chunks: - name: trove-setup morph: strata/trove/trove-setup.morph repo: baserock:baserock/trove-setup - ref: 16de74536e0846ba1d2e5101618df9146c785a41 + ref: 1ca53f11d302a7db3ef53e09ba7c259689a9cb83 unpetrify-ref: master - name: lua-scrypt morph: strata/trove/lua-scrypt.morph diff --git a/strata/virtualization.morph b/strata/virtualization.morph index f63b3599..f58018b6 100644 --- a/strata/virtualization.morph +++ b/strata/virtualization.morph @@ -7,7 +7,7 @@ description: | for example. build-depends: - morph: strata/libsoup-common.morph -- morph: strata/python-core.morph +- morph: strata/python2-core.morph - morph: strata/python-pygobject.morph - morph: strata/connman-common.morph - morph: strata/lvm.morph @@ -34,6 +34,7 @@ chunks: repo: upstream:libpciaccess ref: b9c068896914b4132a24839c9ef7f9fcd6282d88 unpetrify-ref: master + build-system: autotools - name: dmidecode morph: strata/virtualization/dmidecode.morph repo: upstream:dmidecode @@ -54,16 +55,19 @@ chunks: repo: upstream:pycurl ref: 5ca370827d88817eeca3c56cbb37e4ddccc16c6e unpetrify-ref: baserock/morph + build-system: python-distutils - name: urlgrabber repo: upstream:urlgrabber ref: bf0a0be71373dec515bbb54e0613a3b9b0c00b04 unpetrify-ref: master + build-system: python-distutils build-depends: - pycurl - name: libvirt-python repo: upstream:libvirt-python ref: 8e09c79a07b097a6ba9af83be4916fb9c9538500 unpetrify-ref: v1.2.10 + build-system: python-distutils build-depends: - libvirt - urlgrabber @@ -76,6 +80,7 @@ chunks: repo: upstream:virt-manager ref: 8b7ebd4538ffbd2d246fdeee4f1bb1c452585575 unpetrify-ref: v1.0.1 + build-system: python-distutils build-depends: - libvirt-python - libosinfo diff --git a/strata/virtualization/libosinfo.morph b/strata/virtualization/libosinfo.morph index d5679965..51b41b38 100644 --- a/strata/virtualization/libosinfo.morph +++ b/strata/virtualization/libosinfo.morph @@ -2,5 +2,10 @@ name: libosinfo kind: chunk build-system: autotools configure-commands: -- ./autogen.sh --prefix="$PREFIX" --disable-gtk-doc --disable-tests --disable-vala - --with-usb-ids-path=usb.ids --with-pci-ids-path=pci.ids +- | + ./autogen.sh --prefix="$PREFIX" \ + --disable-gtk-doc \ + --disable-tests \ + --disable-vala \ + --with-usb-ids-path=usb.ids --with-pci-ids-path=pci.ids \ + --disable-werror diff --git a/strata/wayland-generic.morph b/strata/wayland-generic.morph index 37a57c5b..cf89a1b5 100644 --- a/strata/wayland-generic.morph +++ b/strata/wayland-generic.morph @@ -2,17 +2,9 @@ name: wayland-generic kind: stratum build-depends: - morph: strata/core.morph -- morph: strata/xorg-util-macros-common.morph chunks: -- name: libxkbcommon - morph: strata/wayland-generic/libxkbcommon.morph - repo: upstream:xorg-lib-libxkbcommon - ref: c43c3c866eb9d52cd8f61e75cbef1c30d07f3a28 - unpetrify-ref: xkbcommon-0.5.0 - name: wayland morph: strata/wayland-generic/wayland.morph repo: upstream:wayland ref: 60024af597b68974c451c89f960a7c11de11c33a unpetrify-ref: 1.8.0 - build-depends: - - libxkbcommon diff --git a/strata/wayland-generic/libxkbcommon.morph b/strata/wayland-generic/libxkbcommon.morph deleted file mode 100644 index 04048abb..00000000 --- a/strata/wayland-generic/libxkbcommon.morph +++ /dev/null @@ -1,5 +0,0 @@ -name: libxkbcommon -kind: chunk -build-system: autotools -configure-commands: -- ./autogen.sh --prefix="$PREFIX" --disable-x11 diff --git a/strata/wayland-generic/wayland.morph b/strata/wayland-generic/wayland.morph index 752a5d6e..a65afd05 100644 --- a/strata/wayland-generic/wayland.morph +++ b/strata/wayland-generic/wayland.morph @@ -4,4 +4,4 @@ description: Wayland server build-system: autotools configure-commands: - autoreconf -ivf -- ./configure --prefix="$PREFIX" --disable-documentation +- ./configure --prefix="$PREFIX" --sysconfdir=/etc --disable-documentation diff --git a/strata/webtools.morph b/strata/webtools.morph index 17a1abda..495a4f3c 100644 --- a/strata/webtools.morph +++ b/strata/webtools.morph @@ -2,18 +2,15 @@ name: webtools kind: stratum description: web things build-depends: +- morph: strata/icu-common.morph - morph: strata/tools.morph - morph: strata/pcre-utils.morph chunks: -- name: icu - morph: strata/webtools/icu.morph - repo: upstream:icu - ref: ba023548a3bff7277cbea4acade3042ce9d8949e - unpetrify-ref: baserock/morph - name: libgit2 repo: upstream:libgit2 ref: 4b0a36e881506a02b43a4ae3c19c93c919b36eeb unpetrify-ref: master + build-system: cmake - name: nginx morph: strata/webtools/nginx.morph repo: upstream:nginx diff --git a/strata/webtools/icu.morph b/strata/webtools/icu.morph deleted file mode 100644 index 37dec07e..00000000 --- a/strata/webtools/icu.morph +++ /dev/null @@ -1,8 +0,0 @@ -name: icu -kind: chunk -configure-commands: -- cd source; ./runConfigureICU Linux --prefix=/usr -build-commands: -- cd source; unset TARGET ; make -install-commands: -- cd source; unset TARGET ; make DESTDIR="$DESTDIR" install diff --git a/strata/weston-common/weston.morph b/strata/weston-common/weston.morph index c49b8d5b..b97294ef 100644 --- a/strata/weston-common/weston.morph +++ b/strata/weston-common/weston.morph @@ -3,5 +3,5 @@ kind: chunk build-system: autotools configure-commands: - | - ./autogen.sh --prefix="$PREFIX" \ + ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc \ --enable-demo-clients-install diff --git a/strata/weston-genivi.morph b/strata/weston-genivi.morph index ea619821..88d6df66 100644 --- a/strata/weston-genivi.morph +++ b/strata/weston-genivi.morph @@ -2,7 +2,7 @@ name: weston-genivi kind: stratum build-depends: - morph: strata/graphics-common.morph -- morph: strata/input-common.morph +- morph: strata/input-genivi.morph - morph: strata/mesa-common.morph - morph: strata/libdrm-common.morph - morph: strata/wayland-generic.morph @@ -10,12 +10,12 @@ chunks: - name: weston morph: strata/weston-genivi/weston.morph repo: upstream:weston - ref: 5d7a71cb941ed419ec042ea28be56c87ea407db6 - unpetrify-ref: baserock/genivi/1.3.0 + ref: 1a43127064349577d1d41a910d8ed1a39caf2867 + unpetrify-ref: baserock/genivi/genivi-demo-platform - name: wayland-ivi-extension morph: strata/weston-genivi/wayland-ivi-extension.morph repo: upstream:genivi/wayland-ivi-extension - ref: 43fa65ede93cef9e6c902df2248229ad204b510a - unpetrify-ref: master + ref: bac7fc24bb94e37e33f447b58ec74240bb248841 + unpetrify-ref: 1.3.91 build-depends: - weston diff --git a/strata/weston-genivi/weston.morph b/strata/weston-genivi/weston.morph index 810ce5e9..3bc1884b 100644 --- a/strata/weston-genivi/weston.morph +++ b/strata/weston-genivi/weston.morph @@ -13,12 +13,15 @@ configure-commands: post-install-commands: - install -d "$DESTDIR/usr/share/weston" - install -m 0644 data/*.png "$DESTDIR/usr/share/weston/" -- sed -i 's,/weston.build/data/,/usr/share/weston/,g' ivi-shell/weston.ini -- sed -i 's,/weston.build/clients/,/usr/bin/,g' ivi-shell/weston.ini -- sed -i 's,/weston.build/,/usr/libexec/,g' ivi-shell/weston.ini -- sed -i '/^\[ivi-launcher\]/,$d' ivi-shell/weston.ini +- cp ivi-shell/weston.ini ivi-shell/ivi-shell-weston.ini +- cp ivi-shell/weston.ini ivi-shell/gdp-weston.ini +# Generate ivi-shell-weston config used for GENIVI Baseline +- sed -i 's,/weston.build/data/,/usr/share/weston/,g' ivi-shell/ivi-shell-weston.ini +- sed -i 's,/weston.build/clients/,/usr/bin/,g' ivi-shell/ivi-shell-weston.ini +- sed -i 's,/weston.build/,/usr/libexec/,g' ivi-shell/ivi-shell-weston.ini +- sed -i '/^\[ivi-launcher\]/,$d' ivi-shell/ivi-shell-weston.ini - | - cat <<EOF >> ivi-shell/weston.ini + cat <<EOF >> ivi-shell/ivi-shell-weston.ini [ivi-launcher] workspace-id=0 icon-id=4001 @@ -49,5 +52,13 @@ post-install-commands: icon=/usr/share/weston/icon_ivi_smoke.png path=/usr/bin/weston-smoke EOF + - install -d "$DESTDIR/usr/share/doc/weston" -- install -m 0644 ivi-shell/weston.ini "$DESTDIR/usr/share/doc/weston/ivi-shell-weston.ini" +- install -m 0644 ivi-shell/ivi-shell-weston.ini "$DESTDIR/usr/share/doc/weston/ivi-shell-weston.ini" + +# Generate gdp-weston config used for GENIVI Demo Platform +- sed -i 's/hmi-controller.so/ivi-controller.so/' ivi-shell/gdp-weston.ini + +# Install both config files to decide later which one to use +- install -m 0644 ivi-shell/ivi-shell-weston.ini "$DESTDIR/usr/share/doc/weston/ivi-shell-weston.ini" +- install -m 0644 ivi-shell/gdp-weston.ini "$DESTDIR/usr/share/doc/weston/gdp-weston.ini" diff --git a/strata/x-common.morph b/strata/x-common.morph index 33d7b5b6..fe7b9a0d 100644 --- a/strata/x-common.morph +++ b/strata/x-common.morph @@ -7,116 +7,149 @@ chunks: repo: upstream:xorg-proto-bigreqsproto ref: d6ed3e927a756900ad4c9fd7235f8f7f34f376db unpetrify-ref: baserock/morph + build-system: autotools - name: xorg-proto-compositeproto repo: upstream:xorg-proto-compositeproto ref: 39738dbe9438dc80fc6b9e221d9ed26a6d42da6b unpetrify-ref: baserock/morph + build-system: autotools - name: xorg-proto-damageproto repo: upstream:xorg-proto-damageproto ref: 015b980e5091492dbe681af59569768ba89fbfe0 unpetrify-ref: baserock/morph + build-system: autotools - name: xorg-proto-dmxproto repo: upstream:xorg-proto-dmxproto ref: 395f6fcc0a5635907b5e45829e86b29431316184 unpetrify-ref: baserock/morph + build-system: autotools - name: xorg-proto-fixesproto repo: upstream:xorg-proto-fixesproto ref: b6c6bc2aa4b83f8763c75c90e6671052272a2af2 unpetrify-ref: baserock/morph + build-system: autotools - name: xorg-proto-fontsproto repo: upstream:xorg-proto-fontsproto ref: df8c05f7c0253a36589d96efa52938215eff9d4d unpetrify-ref: fontsproto-2.1.3 + build-system: autotools - name: xorg-proto-glproto repo: upstream:xorg-proto-glproto ref: f84853d97d5749308992412a215fa518b6536eb3 unpetrify-ref: glproto-1.4.17 + build-system: autotools - name: xorg-proto-inputproto repo: upstream:xorg-proto-inputproto ref: 343ff0938f592876b9d82c966f166bf45a78c3c8 unpetrify-ref: inputproto-2.3.1 + build-system: autotools - name: xorg-proto-kbproto repo: upstream:xorg-proto-kbproto ref: f7022f5775350dce3348b7151845a32390e98791 unpetrify-ref: baserock/morph + build-system: autotools - name: xorg-proto-xineramaproto repo: upstream:xorg-proto-xineramaproto ref: 4e77b45e0d6b42a448dab2ec316eeb5c490ecfed unpetrify-ref: baserock/morph + build-system: autotools - name: xorg-proto-randrproto repo: upstream:xorg-proto-randrproto ref: ca7cc541c2e43e6c784df19b4583ac35829d2f72 unpetrify-ref: baserock/morph + build-system: autotools - name: xorg-proto-recordproto repo: upstream:xorg-proto-recordproto ref: 0fd4f8e57c1e637b2aaaaa0f539ddbac8cc50575 unpetrify-ref: baserock/morph + build-system: autotools - name: xorg-proto-renderproto repo: upstream:xorg-proto-renderproto ref: 935f5ec95a3718c184ff685f5b79b467483b7844 unpetrify-ref: baserock/morph + build-system: autotools - name: xorg-proto-resourceproto repo: upstream:xorg-proto-resourceproto ref: ada91f54c98b5a61d3e116fca6bf239a8604730f unpetrify-ref: baserock/morph + build-system: autotools - name: xorg-proto-scrnsaverproto repo: upstream:xorg-proto-scrnsaverproto ref: 614532026e8ec7496216316fb584d6f2af6a7f7b unpetrify-ref: baserock/morph + build-system: autotools - name: xorg-proto-videoproto repo: upstream:xorg-proto-videoproto ref: e42cf822e230cff5c6550ca2c050dfa27d2c9611 unpetrify-ref: baserock/morph + build-system: autotools - name: xorg-proto-xcmiscproto repo: upstream:xorg-proto-xcmiscproto ref: 83549077a3c2140b9862709004cd873f1c55e395 unpetrify-ref: baserock/morph + build-system: autotools - name: xorg-proto-xextproto repo: upstream:xorg-proto-xextproto ref: 66afec3f49e8eb0d4c2e9af7088fc3116d4bafd7 unpetrify-ref: xextproto-7.3.0 + build-system: autotools - name: xorg-proto-xf86bigfontproto repo: upstream:xorg-proto-xf86bigfontproto ref: f805b328b2195de384c0fb6b82ef5f88c179b2c0 unpetrify-ref: baserock/morph + build-system: autotools +- name: xorg-proto-xf86dgaproto + repo: upstream:xorg-proto-xf86dgaproto + ref: c52b205c3175309be7952774668c87dd2d5ce30e + unpetrify-ref: baserock/morph + build-system: autotools - name: xorg-proto-xf86driproto repo: upstream:xorg-proto-xf86driproto ref: cb03b8d49bf063860859c1ed8bcecd055551e93a unpetrify-ref: baserock/morph + build-system: autotools - name: xorg-proto-x11proto repo: upstream:xorg-proto-x11proto ref: 03cbbf6c3e811c026c86e3a60d2f9af56606e155 unpetrify-ref: xproto-7.0.26 + build-system: autotools - name: xorg-proto-dri2proto repo: upstream:xorg-proto-dri2proto ref: ead89ad84877551cc15d26b95cb19a3e205df71f unpetrify-ref: baserock/morph + build-system: autotools - name: xorg-proto-dri3proto repo: upstream:xorg-proto-dri3proto ref: 91df0f88b70c268f3580385a7b37543ab8c544c8 + build-system: autotools - name: xorg-proto-presentproto repo: upstream:xorg-proto-presentproto ref: ef84007fc4a23d3897b4776906139de9d0698c2a + build-system: autotools - name: xcb-proto repo: upstream:xcb-proto ref: 4b384d2a015c50d0e93dcacda4b8260a3fd37640 unpetrify-ref: '1.11' + build-system: autotools - name: xorg-lib-libxshmfence repo: upstream:xorg-lib-libxshmfence ref: 9c4f070e1304a3503cfab08f68573443025fc4c9 unpetrify-ref: master + build-system: autotools build-depends: - xorg-proto-x11proto - name: xorg-lib-libXau repo: upstream:xorg-lib-libXau ref: 1a8a1b2c68967b48c07b56142799b1020f017027 unpetrify-ref: baserock/morph + build-system: autotools build-depends: - xorg-proto-x11proto - name: xcb-libxcb repo: upstream:xcb-libxcb ref: d1e8ec96fca4862f37ec9f0e9407bb989c4c161a unpetrify-ref: '1.11' + build-system: autotools build-depends: - xcb-proto - xorg-lib-libXau @@ -124,24 +157,28 @@ chunks: repo: upstream:xcb-util ref: 4de010f122da40e17b52866d07d1d501a66bf007 unpetrify-ref: baserock/0.4.0 + build-system: autotools build-depends: - xcb-libxcb - name: util-wm repo: upstream:util-wm ref: fb7afc3f291c8cc072d327cd8d97ab1db3283c21 unpetrify-ref: baserock/0.4.1 + build-system: autotools build-depends: - xcb-libxcb - name: util-keysyms repo: upstream:util-keysyms ref: edb763a8837d3932690b9d6d77cb7e20a9ab8013 unpetrify-ref: baserock/0.4.0 + build-system: autotools build-depends: - xcb-libxcb - name: util-image repo: upstream:util-image ref: f20f25a1c017c58d5d7dfffc6e9adc8d31879152 unpetrify-ref: baserock/0.4.0 + build-system: autotools build-depends: - xcb-libxcb - xcb-util @@ -149,10 +186,12 @@ chunks: repo: upstream:xorg-lib-libxtrans ref: 7cbad9fe2e61cd9d5caeaf361826a6f4bd320f03 unpetrify-ref: xtrans-1.3.5 + build-system: autotools - name: xorg-lib-libX11 repo: upstream:xorg-lib-libX11 ref: cb107760df33ffc8630677e66e2e50aa37950a5c unpetrify-ref: libX11-1.6.2 + build-system: autotools build-depends: - xcb-libxcb - xorg-lib-libxtrans @@ -165,32 +204,46 @@ chunks: repo: upstream:xorg-lib-libXext ref: 8eee1236041d46a21faba32e0d27c26985267d89 unpetrify-ref: baserock/morph + build-system: autotools build-depends: - xorg-lib-libX11 - xorg-lib-libXau - xorg-proto-x11proto - xorg-proto-xextproto +- name: xorg-lib-libXfixes + repo: upstream:xorg-lib-libXfixes + ref: 0cb446962381f750e05d97bfb974ca1e32481d5d + unpetrify-ref: libXfixes-5.0.1 + build-system: autotools + build-depends: + - xorg-lib-libXext + - xorg-proto-fixesproto - name: xorg-lib-libXi repo: upstream:xorg-lib-libXi - ref: 9b26b81477cf3486e5aa0ef8d81af68a0f04df1b - unpetrify-ref: baserock/morph + ref: f180dff710dc54d00e0e26b84de053151f8f207e + unpetrify-ref: libXi-1.7.5 + build-system: autotools build-depends: - xorg-lib-libX11 - xorg-lib-libXext + - xorg-lib-libXfixes - xorg-proto-inputproto - xorg-proto-x11proto - xorg-proto-xextproto -- name: xorg-lib-libXfixes - repo: upstream:xorg-lib-libXfixes - ref: 0cb446962381f750e05d97bfb974ca1e32481d5d - unpetrify-ref: libXfixes-5.0.1 +- name: xorg-lib-libXcomposite + repo: upstream:xorg-lib-libXcomposite + ref: eda48b1bedaa344ada8e13930c9ab3058b836190 + unpetrify-ref: baserock/morph + build-system: autotools build-depends: - - xorg-lib-libXext - - xorg-proto-fixesproto + - xorg-lib-libX11 + - xorg-lib-libXfixes + - xorg-proto-compositeproto - name: xorg-lib-libXrender repo: upstream:xorg-lib-libXrender ref: 1af52cb334377611233d7dc156bc1e6f7923756d unpetrify-ref: baserock/morph + build-system: autotools build-depends: - xorg-lib-libX11 - xorg-proto-renderproto @@ -198,6 +251,7 @@ chunks: repo: upstream:xorg-lib-libXrandr ref: 99a63d10cbbab7d69a52d25d78795a3278506ea9 unpetrify-ref: baserock/morph + build-system: autotools build-depends: - xorg-lib-libX11 - xorg-lib-libXext @@ -205,10 +259,21 @@ chunks: - xorg-proto-randrproto - xorg-proto-renderproto - xorg-proto-xextproto +- name: xorg-lib-libXinerama + repo: upstream:xorg-lib-libXinerama + ref: 470b9356af961ff7d3968b164aa73872b49a5dcc + unpetrify-ref: baserock/morph + build-system: autotools + build-depends: + - xorg-lib-libX11 + - xorg-lib-libXext + - xorg-proto-xextproto + - xorg-proto-xineramaproto - name: xorg-lib-libXtst repo: upstream:xorg-lib-libXtst ref: 2aafac9474a0a0a0c39797862f823255918cf368 unpetrify-ref: baserock/morph + build-system: autotools build-depends: - xorg-lib-libX11 - xorg-lib-libXext @@ -220,6 +285,7 @@ chunks: repo: upstream:xorg-lib-libXdamage ref: 0d35761dc39409b70e04dd0786aef6537f92976a unpetrify-ref: baserock/morph + build-system: autotools build-depends: - xorg-lib-libXfixes - xorg-proto-damageproto @@ -227,6 +293,7 @@ chunks: repo: upstream:xorg-lib-libXcursor ref: 1b98fd6a2e8c00a563187849a585e68c7344468b unpetrify-ref: baserock/morph + build-system: autotools build-depends: - xorg-lib-libXrender - xorg-lib-libXfixes @@ -237,6 +304,7 @@ chunks: repo: upstream:xorg-lib-libICE ref: b0cc7794c89d64fc54d0c75b2bba79fd7a1c7e0a unpetrify-ref: libICE-1.0.9 + build-system: autotools build-depends: - xorg-proto-x11proto - xorg-lib-libxtrans @@ -244,12 +312,14 @@ chunks: repo: upstream:xorg-lib-libSM ref: d0659dcd3aa23598b38826ac78f85071772c436f unpetrify-ref: libSM-1.2.2 + build-system: autotools build-depends: - xorg-lib-libICE - name: xorg-lib-libXt repo: upstream:xorg-lib-libXt ref: e7411e7e5299116604ff1f01d9415802607f1051 unpetrify-ref: libXt-1.1.5 + build-system: autotools build-depends: - xorg-proto-kbproto - xorg-lib-libX11 diff --git a/strata/x-drivers.morph b/strata/x-drivers.morph new file mode 100644 index 00000000..185d6b40 --- /dev/null +++ b/strata/x-drivers.morph @@ -0,0 +1,36 @@ +name: x-drivers +kind: stratum +build-depends: +- morph: strata/input-common.morph +- morph: strata/x-generic.morph +chunks: +- name: xorg-driver-xf86-video-fbdev + repo: upstream:xorg-driver-xf86-video-fbdev + ref: 679ed9a4e6b54227df191c580e3ef641e075db19 + unpetrify-ref: xf86-video-fbdev-0.4.4 + build-system: autotools +- name: xorg-driver-xf86-video-vesa + repo: upstream:xorg-driver-xf86-video-vesa + ref: b49c293e67cd88424ff40a2ca4e58b28528691d7 + unpetrify-ref: xf86-video-vesa-2.3.4 + build-system: autotools +- name: xorg-driver-xf86-video-intel + repo: upstream:xorg-driver-xf86-video-intel + ref: 57725564179b8ddb48d5c9437fde91a6c02c0740 + unpetrify-ref: 2.99.917-381-g5772556 + build-system: autotools +- name: xorg-driver-xf86-input-evdev + repo: upstream:xorg-driver-xf86-input-evdev + ref: 24368d8379cc47693dd1623168a6125faff57311 + unpetrify-ref: xf86-input-evdev-2.9.2 + build-system: autotools +- name: xorg-driver-xf86-input-keyboard + repo: upstream:xorg-driver-xf86-input-keyboard + ref: 13d320076e5de2d6c3cbc170fc7e31c526ed8499 + unpetrify-ref: xf86-input-keyboard-1.8.1 + build-system: autotools +- name: xorg-driver-xf86-input-mouse + repo: upstream:xorg-driver-xf86-input-mouse + ref: 6886084b192e681739fc55892f30681efb4f79f0 + unpetrify-ref: xf86-input-mouse-1.9.1 + build-system: autotools diff --git a/strata/x-generic.morph b/strata/x-generic.morph index 27a7c7b6..58d3d0d1 100644 --- a/strata/x-generic.morph +++ b/strata/x-generic.morph @@ -7,37 +7,36 @@ build-depends: - morph: strata/x-common.morph - morph: strata/graphics-common.morph chunks: -- name: libepoxy - repo: upstream:libepoxy - ref: 7422de5b4be7b19d789136b3bb5f932de42db27c - unpetrify-ref: v1.2 - name: xorg-lib-libxkbfile repo: upstream:xorg-lib-libxkbfile ref: 7381c2f9013ef7784c78091fa671e652a62ca706 unpetrify-ref: baserock/morph + build-system: autotools - name: xorg-font-util repo: upstream:xorg-font-util ref: 5f01ea79f1cb2328bfc4130b1e693f71be916b87 unpetrify-ref: baserock/morph + build-system: autotools - name: xorg-lib-libfontenc repo: upstream:xorg-lib-libfontenc ref: f5d1208172e965fdd7fae8927bd3e29b3cc3a975 unpetrify-ref: baserock/morph + build-system: autotools build-depends: - xorg-font-util - name: xorg-lib-libXfont repo: upstream:xorg-lib-libXfont ref: ad4f4d8a2d0730c0ea3c09210bf921638b4682bc unpetrify-ref: libXfont-1.5.0 + build-system: autotools build-depends: - xorg-lib-libfontenc - name: xserver morph: strata/x-generic/xserver.morph repo: upstream:xserver - ref: 3b0d1ba2266d2780bfc111bab74885b90458eca4 - unpetrify-ref: xorg-server-1.17.1 + ref: 2123f7682d522619f101b05fb75efa75dabbe371 + unpetrify-ref: xorg-server-1.17.2 build-depends: - - libepoxy - xorg-font-util - xorg-lib-libXfont - xorg-lib-libxkbfile @@ -45,5 +44,11 @@ chunks: repo: upstream:xorg-app-xkbcomp ref: 705b9bbb426410f9510601c7010da51184919b36 unpetrify-ref: baserock/morph + build-system: autotools build-depends: - xorg-lib-libxkbfile +- name: xorg-app-xinit + repo: upstream:xorg-app-xinit + ref: 4e85bce64acef1fa0ddff04d59737444e942ff12 + unpetrify-ref: baserock/morph + build-system: autotools diff --git a/strata/x-generic/xserver.morph b/strata/x-generic/xserver.morph index ca678331..4e15605b 100644 --- a/strata/x-generic/xserver.morph +++ b/strata/x-generic/xserver.morph @@ -4,10 +4,9 @@ build-system: autotools configure-commands: - | ./autogen.sh --prefix="$PREFIX" \ - --disable-glx \ - --disable-xorg \ --disable-xvfb \ --disable-xnest \ --disable-xquartz \ --disable-xwin \ + --enable-glamor \ --enable-xwayland diff --git a/strata/xdg-app-common.morph b/strata/xdg-app-common.morph new file mode 100644 index 00000000..23ab1eca --- /dev/null +++ b/strata/xdg-app-common.morph @@ -0,0 +1,11 @@ +name: xdg-app-common +kind: stratum +build-depends: +- morph: strata/ostree-core.morph +- morph: strata/x-common.morph +chunks: +- name: xdg-app + morph: strata/xdg-app-common/xdg-app.morph + repo: upstream:xdg-app + ref: aa535b7b01f4dd406e9bed0dfe4a0de2b8e56565 + unpetrify-ref: baserock/0.4.4 diff --git a/strata/xdg-app-common/xdg-app.morph b/strata/xdg-app-common/xdg-app.morph new file mode 100644 index 00000000..87b205e3 --- /dev/null +++ b/strata/xdg-app-common/xdg-app.morph @@ -0,0 +1,5 @@ +name: xdg-app +kind: chunk +build-system: autotools +configure-commands: +- ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc --disable-documentation diff --git a/strata/xfce.morph b/strata/xfce.morph index 295abfe1..552cbd89 100644 --- a/strata/xfce.morph +++ b/strata/xfce.morph @@ -3,41 +3,33 @@ kind: stratum description: xfce stratum build-depends: - morph: strata/gtk2.morph -- morph: strata/x-generic.morph +- morph: strata/audio-bluetooth.morph chunks: -- name: libcroco - repo: upstream:libcroco - ref: 611f624a6e15065792b41eb5ce14811293f3fb0a - unpetrify-ref: baserock/morph -- name: librsvg - morph: strata/xfce/librsvg.morph - repo: upstream:librsvg - ref: 61171ca59d02b58b7da1697ca1d924bff93e66cb - unpetrify-ref: baserock/morph - name: xfce-dev-tools repo: upstream:xfce/xfce4-dev-tools ref: 9244250ac0c15ba160688758c5dccf97f3f160ef unpetrify-ref: baserock/morph + build-system: autotools - name: libxfce4util morph: strata/xfce/libxfce4util.morph repo: upstream:xfce/libxfce4util - ref: fc0437fe503c3eaa5ccd4fa68f098bc428f27cad - unpetrify-ref: baserock/morph + ref: 5f56641e09b081f7d76d3feeee307589b21840c1 + unpetrify-ref: libxfce4util-4.11.0 build-depends: - xfce-dev-tools - name: xfconf morph: strata/xfce/xfconf.morph repo: upstream:xfce/xfconf - ref: ed6ed2f7656a0d5d8cb453cb643061c9a157f2ae - unpetrify-ref: baserock/morph + ref: e5261e292130c96b6e62a8c897b1cc85bbb786ac + unpetrify-ref: master build-depends: - xfce-dev-tools - libxfce4util - name: libxfce4ui morph: strata/xfce/libxfce4ui.morph repo: upstream:xfce/libxfce4ui - ref: a9c2a379709915dfda255d3ca9181fac3f8484d8 - unpetrify-ref: baserock/morph + ref: b9e6a57385ff6f0c15bbc637b76472211e3696b0 + unpetrify-ref: libxfce4ui-4.11.2 build-depends: - xfce-dev-tools - libxfce4util @@ -45,14 +37,16 @@ chunks: - name: garcon morph: strata/xfce/garcon.morph repo: upstream:xfce/garcon - ref: febd4136365714556f6afbccf4302e8f4550e5d1 + ref: 69ff09cf0a9ee3ff9518822614637dc2d4f89ce6 unpetrify-ref: baserock/morph build-depends: - libxfce4util + - libxfce4ui - name: perl-uri repo: upstream:libwww-perl/uri ref: 3dd72ded7f043a4f6973781fe594722e2e95f491 unpetrify-ref: baserock/morph + build-system: cpan - name: exo morph: strata/xfce/exo.morph repo: upstream:xfce/exo @@ -90,8 +84,8 @@ chunks: - name: xfce4-settings morph: strata/xfce/xfce4-settings.morph repo: upstream:xfce/xfce4-settings - ref: 697ce5cd4bf4860a0a20c27b557be296c9adf469 - unpetrify-ref: baserock/morph + ref: f04388fae30685b5038358674dec69406ba87f2c + unpetrify-ref: xfce4-settings-4.11.3 build-depends: - xfce-dev-tools - xfconf @@ -102,11 +96,12 @@ chunks: repo: upstream:iceauth ref: c07d443d43e53cfe21b53a9a0eafcd6189432867 unpetrify-ref: baserock/morph + build-system: autotools - name: xfce4-session morph: strata/xfce/xfce4-session.morph repo: upstream:xfce/xfce4-session - ref: 2c89b2f12409ca617fc094e2942cb0d69318c7b5 - unpetrify-ref: baserock/morph + ref: d4e20cbb9b1df864b502e9e8879a538f089fd5d2 + unpetrify-ref: xfce4-session-4.11.1 build-depends: - iceauth - exo @@ -123,8 +118,8 @@ chunks: - name: xfdesktop morph: strata/xfce/xfdesktop.morph repo: upstream:xfce/xfdesktop - ref: d2f7404da32f29cfec4a704389112fe7183edda5 - unpetrify-ref: baserock/morph + ref: f32d76856e6eee9bc3d772b2fb6c2b8810ae63dc + unpetrify-ref: xfdesktop-4.11.8 build-depends: - exo - libxfce4ui @@ -133,8 +128,8 @@ chunks: - name: xfwm4 morph: strata/xfce/xfwm4.morph repo: upstream:xfce/xfwm4 - ref: 523ef8a6861af772be3468cd700ad14172c86768 - unpetrify-ref: baserock/morph + ref: f5c1c74e1436deff7f16ef92c98097ac3baae290 + unpetrify-ref: xfwm4-4.11.3_plus_fallback_theme build-depends: - exo - libxfce4util @@ -144,8 +139,8 @@ chunks: - name: xfce4-appfinder morph: strata/xfce/xfce4-appfinder.morph repo: upstream:xfce/xfce4-appfinder - ref: 5c069f13fde648913a59f022957b2c83b5764f39 - unpetrify-ref: baserock/morph + ref: 6c2bc7a09dd6e85bb78913cdc8af2292a9361e04 + unpetrify-ref: xfce4-appfinder-4.11.0 build-depends: - exo - libxfce4ui @@ -153,12 +148,12 @@ chunks: - name: tumbler morph: strata/xfce/tumbler.morph repo: upstream:xfce/tumbler - ref: f8191f286227a045fbdabd7684c9da81ade518c8 - unpetrify-ref: baserock/morph + ref: 073c2080c79075fdf574064fa2098c4b5bb79a11 + unpetrify-ref: tumbler-0.1.30 build-depends: - xfce-dev-tools - name: elementary-xfce morph: strata/xfce/elementary-xfce.morph repo: upstream:elementary-xfce - ref: 81e683bb46f8ba58c49c60ed75124951b7ba0779 - unpetrify-ref: baserock/morph + ref: 9681d40e7a3545c96dfb1670e00514acfad5b089 + unpetrify-ref: v0.5 diff --git a/strata/xfce/librsvg.morph b/strata/xfce/librsvg.morph deleted file mode 100644 index f4d880ed..00000000 --- a/strata/xfce/librsvg.morph +++ /dev/null @@ -1,6 +0,0 @@ -name: librsvg -kind: chunk -build-system: autotools -configure-commands: -- NOCONFIGURE=1 ./autogen.sh -- ./configure --prefix="$PREFIX" --disable-gtk-theme diff --git a/strata/xorg-util-macros-common.morph b/strata/xorg-util-macros-common.morph index 909c9420..7e252a90 100644 --- a/strata/xorg-util-macros-common.morph +++ b/strata/xorg-util-macros-common.morph @@ -7,9 +7,11 @@ chunks: repo: upstream:xorg-util-macros ref: 9a54b858601bd305de2737b06e609084a2a114c2 unpetrify-ref: util-macros-1.19.0 + build-system: autotools - name: xcb-pthread-stubs repo: upstream:xcb-pthread-stubs ref: 431d2c0be218d878b9dd3862e4232243c599df4b unpetrify-ref: baserock/morph + build-system: autotools build-depends: - xorg-util-macros diff --git a/strata/xstatic.morph b/strata/xstatic.morph index deb9d1ec..e396003b 100644 --- a/strata/xstatic.morph +++ b/strata/xstatic.morph @@ -10,117 +10,145 @@ description: | but it is required right now for the Openstack system to work. build-depends: - morph: strata/foundation.morph -- morph: strata/python-core.morph +- morph: strata/python2-core.morph chunks: - name: xstatic repo: upstream:xstatic ref: 6c8604a422ba7f176ce6b372a8e182c293d06fb2 unpetrify-ref: 1.0.1 + build-system: python-distutils - name: xstatic-angular repo: upstream:xstatic-packages/xstatic-angular ref: dac047df05da5bb20de4e78876bc03820d0c6671 unpetrify-ref: 1.3.7.0 + build-system: python-distutils - name: xstatic-angular-animate repo: upstream:xstatic-packages/xstatic-angular-animate ref: 91b9d3197f67213e4e35e9a35ba7196b898731e7 unpetrify-ref: master + build-system: python-distutils - name: xstatic-angular-bootstrap repo: upstream:xstatic-packages/xstatic-angular-bootstrap ref: b581edb6975175a564fd02766aef2f9043702c80 unpetrify-ref: 0.11.0.3 + build-system: python-distutils - name: xstatic-angular-lrdragndrop repo: upstream:xstatic-packages/xstatic-angular-lrdragndrop ref: 55c7494492e6da2a6664aa00941864dd64589396 unpetrify-ref: 1.0.2.3 + build-system: python-distutils - name: xstatic-angular-cookies repo: upstream:xstatic-packages/xstatic-angular-cookies ref: 66141a33ae7ad84b82ba9384a8101ae15ccd6da5 unpetrify-ref: 1.2.1.1 + build-system: python-distutils - name: xstatic-angular-fileupload repo: upstream:xstatic-packages/xstatic-angular-fileupload ref: 04bcd774dae17cfff5e826fc0874f6403b4a6cae unpetrify-ref: master + build-system: python-distutils - name: xstatic-angular-mock repo: upstream:xstatic-packages/xstatic-angular-mock ref: 20fdada109b167bcdcacec22986b43fdb42866f3 unpetrify-ref: 1.2.1.1 + build-system: python-distutils - name: xstatic-angular-sanitize repo: upstream:xstatic-packages/xstatic-angular-sanitize ref: 9e0f03ada6fc00f8583903aeb6d9fc6516784999 unpetrify-ref: master + build-system: python-distutils - name: xstatic-angular-smart-table repo: upstream:xstatic-packages/xstatic-angular-smart-table ref: e0fbf69fb156b995547471d71c5c6a7f88989d47 unpetrify-ref: master + build-system: python-distutils - name: xstatic-bootstrap-datepicker repo: upstream:xstatic-packages/xstatic-bootstrap-datepicker ref: 60caf41e32d49f9bc715c39570f01449ebfbd37a unpetrify-ref: master + build-system: python-distutils - name: xstatic-bootstrap-scss repo: upstream:xstatic-packages/xstatic-bootstrap-scss ref: d81b7b71c6c088406e90d1bdba0e10f0a304bbdc unpetrify-ref: 3.1.1.1 + build-system: python-distutils - name: xstatic-d3 repo: upstream:xstatic-packages/xstatic-d3 ref: 1e754e73c801fb9315995ffeb95ae51233c4fcaf unpetrify-ref: master + build-system: python-distutils - name: xstatic-hogan repo: upstream:xstatic-packages/xstatic-hogan ref: 9e39977f6a6744810b08fa0323147e9f31dbd363 unpetrify-ref: master + build-system: python-distutils - name: xstatic-font-awesome repo: upstream:xstatic-packages/xstatic-font-awesome ref: c13aad1b95b1d84e73f2565a18a5a8e2bd2194a7 unpetrify-ref: 4.2.0.0 + build-system: python-distutils - name: xstatic-jasmine repo: upstream:xstatic-packages/xstatic-jasmine ref: a55f5db1dbe59b23c7d6284250bf4eac1d0143c3 unpetrify-ref: 2.1.2.0 + build-system: python-distutils - name: xstatic-jquery repo: upstream:xstatic-packages/xstatic-jquery ref: e91c5bf82535a62c1cfac61b5efb6b5c0157c1f5 unpetrify-ref: master + build-system: python-distutils - name: xstatic-jquery-bootstrap-wizard repo: upstream:xstatic-packages/xstatic-jquery-bootstrap-wizard ref: 07ae7e3a15b3af3d3d378d1f2412fe503ee42142 unpetrify-ref: master + build-system: python-distutils - name: xstatic-jquery-migrate repo: upstream:xstatic-packages/xstatic-jquery-migrate ref: 989b3b31106727542dd83810c3b952f90d8cdb8f unpetrify-ref: master + build-system: python-distutils - name: xstatic-jquery-quicksearch repo: upstream:xstatic-packages/xstatic-jquery-quicksearch ref: f5221c8c30507340846d97d6db41a782e7c63316 unpetrify-ref: master + build-system: python-distutils - name: xstatic-jquery-tablesorter repo: upstream:xstatic-packages/xstatic-jquery-tablesorter ref: eb78328391f44a9a88033e1aede1a605902c5551 unpetrify-ref: master + build-system: python-distutils - name: xstatic-jquery-ui repo: upstream:xstatic-packages/xstatic-jquery-ui ref: b494369430dafd8ac4ddbe90efb9f8ad20a6e6d1 unpetrify-ref: 1.11.0.1 + build-system: python-distutils - name: xstatic-magic-search repo: upstream:xstatic-packages/xstatic-magic-search ref: 60d6954a36e54afa1f925324e7b527d235bdb484 unpetrify-ref: 0.2.0.1 + build-system: python-distutils - name: xstatic-jsencrypt repo: upstream:xstatic-packages/xstatic-jsencrypt ref: 5c0f088310ecd602e3aaf5e683385b0d27258409 unpetrify-ref: master + build-system: python-distutils - name: xstatic-qunit repo: upstream:xstatic-packages/xstatic-qunit ref: c3189eaa77c68c149a40b8c0afc8722cf394bd1f unpetrify-ref: master + build-system: python-distutils - name: xstatic-rickshaw repo: upstream:xstatic-packages/xstatic-rickshaw ref: 6427ca5406852bc779d6918f487bb0fe3f063e77 unpetrify-ref: master + build-system: python-distutils - name: xstatic-spin repo: upstream:xstatic-packages/xstatic-spin ref: 74b4c0d0ff12db1f84787246857d5e925ff6883f unpetrify-ref: master + build-system: python-distutils - name: xstatic-termjs repo: upstream:xstatic-packages/xstatic-termjs ref: a4ac0b809ab0d84c636a760215839bb6d68d0113 unpetrify-ref: master + build-system: python-distutils diff --git a/systems/base-system-armv7l-altera-socfpga-devkit.morph b/systems/base-system-armv7l-altera-socfpga-devkit.morph new file mode 100644 index 00000000..b8fe4c28 --- /dev/null +++ b/systems/base-system-armv7l-altera-socfpga-devkit.morph @@ -0,0 +1,21 @@ +name: base-system-armv7l-altera-socfpga-devkit +kind: system +description: | + The set of strata required to have a minimal system for use on Altera SoCFPGA + development kit, using little-endian word order. +arch: armv7lhf +strata: +- name: build-essential + morph: strata/build-essential.morph +- name: core + morph: strata/core.morph +- name: foundation + morph: strata/foundation.morph +- name: bsp-armv7l-altera-socfpga-devkit + morph: strata/bsp-armv7l-altera-socfpga-devkit.morph +configuration-extensions: +- extensions/set-hostname +- extensions/add-config-files +- extensions/nfsboot +- extensions/install-files +- extensions/install-essential-files diff --git a/systems/build-system-armv5l-openbmc-aspeed.morph b/systems/build-system-armv5l-openbmc-aspeed.morph index 922d49f1..699f8b7e 100644 --- a/systems/build-system-armv5l-openbmc-aspeed.morph +++ b/systems/build-system-armv5l-openbmc-aspeed.morph @@ -11,10 +11,8 @@ strata: morph: strata/core.morph - name: foundation morph: strata/foundation.morph -- name: python-core - morph: strata/python-core.morph -- name: python3-core - morph: strata/python3-core.morph +- name: python2-core + morph: strata/python2-core.morph - name: bsp-armv5l-openbmc-aspeed morph: strata/bsp-armv5l-openbmc-aspeed.morph - name: tools diff --git a/systems/build-system-armv7l-altera-socfpga-devkit.morph b/systems/build-system-armv7l-altera-socfpga-devkit.morph new file mode 100644 index 00000000..813392cb --- /dev/null +++ b/systems/build-system-armv7l-altera-socfpga-devkit.morph @@ -0,0 +1,48 @@ +name: build-system-armv7l-altera-socfpga-devkit +kind: system +description: | + The system that should be used for building other Baserock systems. For + use on Altera SoCFPGA development kit, using little-endian word order. +arch: armv7lhf +strata: +- name: build-essential + morph: strata/build-essential.morph +- name: core + morph: strata/core.morph +- name: foundation + morph: strata/foundation.morph +- name: bsp-armv7l-altera-socfpga-devkit + morph: strata/bsp-armv7l-altera-socfpga-devkit.morph +- name: python2-core + morph: strata/python2-core.morph +- name: tools + morph: strata/tools.morph +- name: python-cliapp + morph: strata/python-cliapp.morph +- name: python-pygobject + morph: strata/python-pygobject.morph +- name: python-wsgi + morph: strata/python-wsgi.morph +- name: morph-utils + morph: strata/morph-utils.morph +- name: nfs + morph: strata/nfs.morph +- name: python-common + morph: strata/python-common.morph +- name: ansible + morph: strata/ansible.morph +- name: devtools + morph: strata/devtools.morph +- name: libsoup-common + morph: strata/libsoup-common.morph +- name: ostree-core + morph: strata/ostree-core.morph +configuration-extensions: +- extensions/set-hostname +- extensions/add-config-files +- extensions/nfsboot +- extensions/install-files +- extensions/distbuild +- extensions/fstab +- extensions/mason +- extensions/install-essential-files diff --git a/systems/build-system-armv7lhf-highbank.morph b/systems/build-system-armv7lhf-highbank.morph index fa96ca02..752655af 100644 --- a/systems/build-system-armv7lhf-highbank.morph +++ b/systems/build-system-armv7lhf-highbank.morph @@ -10,10 +10,8 @@ strata: morph: strata/core.morph - name: foundation morph: strata/foundation.morph -- name: python-core - morph: strata/python-core.morph -- name: python3-core - morph: strata/python3-core.morph +- name: python2-core + morph: strata/python2-core.morph - name: bsp-armv7-highbank morph: strata/bsp-armv7-highbank.morph - name: tools diff --git a/systems/build-system-armv7lhf-jetson.morph b/systems/build-system-armv7lhf-jetson.morph index 2e180a6e..928d4c9f 100644 --- a/systems/build-system-armv7lhf-jetson.morph +++ b/systems/build-system-armv7lhf-jetson.morph @@ -10,10 +10,8 @@ strata: morph: strata/core.morph - name: foundation morph: strata/foundation.morph -- name: python-core - morph: strata/python-core.morph -- name: python3-core - morph: strata/python3-core.morph +- name: python2-core + morph: strata/python2-core.morph - name: bsp-jetson morph: strata/bsp-jetson.morph - name: tools diff --git a/systems/build-system-armv7lhf-rootfs.morph b/systems/build-system-armv7lhf-rootfs.morph new file mode 100644 index 00000000..0cdfc804 --- /dev/null +++ b/systems/build-system-armv7lhf-rootfs.morph @@ -0,0 +1,54 @@ +name: build-system-armv7lhf-rootfs +kind: system +description: The system that should be used for building all other Baserock systems + for ARMv7 little-endian hard-float, rootfs variant. +arch: armv7lhf +strata: +- name: build-essential + morph: strata/build-essential.morph +- name: core + morph: strata/core.morph +- name: foundation + morph: strata/foundation.morph +- name: python2-core + morph: strata/python2-core.morph +- name: tools + morph: strata/tools.morph +- name: python-cliapp + morph: strata/python-cliapp.morph +- name: python-pygobject + morph: strata/python-pygobject.morph +- name: python-wsgi + morph: strata/python-wsgi.morph +- name: morph-utils + morph: strata/morph-utils.morph +- name: nfs + morph: strata/nfs.morph +- name: python-common + morph: strata/python-common.morph +- name: ansible + morph: strata/ansible.morph +- name: cloudinit-support + morph: strata/cloudinit-support.morph +- name: openstack-common + morph: strata/openstack-common.morph +- name: openstack-clients + morph: strata/openstack-clients.morph +- name: devtools + morph: strata/devtools.morph +- name: libsoup-common + morph: strata/libsoup-common.morph +- name: glib-common + morph: strata/glib-common.morph +- name: ostree-core + morph: strata/ostree-core.morph +configuration-extensions: +- extensions/set-hostname +- extensions/add-config-files +- extensions/nfsboot +- extensions/install-files +- extensions/distbuild +- extensions/fstab +- extensions/mason +- extensions/cloud-init +- extensions/install-essential-files diff --git a/systems/build-system-armv8b64.morph b/systems/build-system-armv8b64.morph index 27757027..75864921 100644 --- a/systems/build-system-armv8b64.morph +++ b/systems/build-system-armv8b64.morph @@ -13,10 +13,8 @@ strata: morph: strata/foundation.morph - name: bsp-armv8b64-generic morph: strata/bsp-armv8b64-generic.morph -- name: python-core - morph: strata/python-core.morph -- name: python3-core - morph: strata/python3-core.morph +- name: python2-core + morph: strata/python2-core.morph - name: tools morph: strata/tools.morph - name: python-cliapp diff --git a/systems/build-system-armv8l64.morph b/systems/build-system-armv8l64.morph index 2f9560c4..da6e45a1 100644 --- a/systems/build-system-armv8l64.morph +++ b/systems/build-system-armv8l64.morph @@ -11,10 +11,8 @@ strata: morph: strata/core.morph - name: foundation morph: strata/foundation.morph -- name: python-core - morph: strata/python-core.morph -- name: python3-core - morph: strata/python3-core.morph +- name: python2-core + morph: strata/python2-core.morph - name: bsp-armv8l64-generic morph: strata/bsp-armv8l64-generic.morph - name: tools diff --git a/systems/build-system-ppc64.morph b/systems/build-system-ppc64.morph index 5c2851bf..0e8bcfc1 100644 --- a/systems/build-system-ppc64.morph +++ b/systems/build-system-ppc64.morph @@ -10,10 +10,8 @@ strata: morph: strata/core.morph - name: foundation morph: strata/foundation.morph -- name: python-core - morph: strata/python-core.morph -- name: python3-core - morph: strata/python3-core.morph +- name: python2-core + morph: strata/python2-core.morph - name: bsp-ppc64-generic morph: strata/bsp-ppc64-generic.morph - name: tools diff --git a/systems/build-system-x86_32-chroot.morph b/systems/build-system-x86_32-chroot.morph index bfd77b8e..ba2d6b04 100644 --- a/systems/build-system-x86_32-chroot.morph +++ b/systems/build-system-x86_32-chroot.morph @@ -10,10 +10,8 @@ strata: morph: strata/core.morph - name: foundation morph: strata/foundation.morph -- name: python-core - morph: strata/python-core.morph -- name: python3-core - morph: strata/python3-core.morph +- name: python2-core + morph: strata/python2-core.morph - name: tools morph: strata/tools.morph - name: python-cliapp diff --git a/systems/build-system-x86_32.morph b/systems/build-system-x86_32.morph index fe35055f..61d339da 100644 --- a/systems/build-system-x86_32.morph +++ b/systems/build-system-x86_32.morph @@ -10,10 +10,8 @@ strata: morph: strata/core.morph - name: foundation morph: strata/foundation.morph -- name: python-core - morph: strata/python-core.morph -- name: python3-core - morph: strata/python3-core.morph +- name: python2-core + morph: strata/python2-core.morph - name: bsp-x86_32-generic morph: strata/bsp-x86_32-generic.morph - name: tools diff --git a/systems/build-system-x86_64-chroot.morph b/systems/build-system-x86_64-chroot.morph index 3bbdd914..48463cd2 100644 --- a/systems/build-system-x86_64-chroot.morph +++ b/systems/build-system-x86_64-chroot.morph @@ -10,10 +10,8 @@ strata: morph: strata/core.morph - name: foundation morph: strata/foundation.morph -- name: python-core - morph: strata/python-core.morph -- name: python3-core - morph: strata/python3-core.morph +- name: python2-core + morph: strata/python2-core.morph - name: tools morph: strata/tools.morph - name: python-cliapp diff --git a/systems/build-system-x86_64.morph b/systems/build-system-x86_64.morph index b5e39f73..0abf5925 100644 --- a/systems/build-system-x86_64.morph +++ b/systems/build-system-x86_64.morph @@ -10,10 +10,8 @@ strata: morph: strata/core.morph - name: foundation morph: strata/foundation.morph -- name: python-core - morph: strata/python-core.morph -- name: python3-core - morph: strata/python3-core.morph +- name: python2-core + morph: strata/python2-core.morph - name: bsp-x86_64-generic morph: strata/bsp-x86_64-generic.morph - name: tools diff --git a/systems/ceph-service-x86_64-generic.morph b/systems/ceph-service-x86_64-generic.morph index 9a36b850..803d002f 100644 --- a/systems/ceph-service-x86_64-generic.morph +++ b/systems/ceph-service-x86_64-generic.morph @@ -50,10 +50,8 @@ strata: morph: strata/baserock-import.morph - name: nfs morph: strata/nfs.morph -- name: python-core - morph: strata/python-core.morph -- name: python3-core - morph: strata/python3-core.morph +- name: python2-core + morph: strata/python2-core.morph - name: python-common morph: strata/python-common.morph - name: chef diff --git a/systems/devel-system-armv7-chroot.morph b/systems/devel-system-armv7-chroot.morph index 6fe76927..9a5f48f2 100644 --- a/systems/devel-system-armv7-chroot.morph +++ b/systems/devel-system-armv7-chroot.morph @@ -35,10 +35,8 @@ strata: morph: strata/lorry.morph - name: baserock-import morph: strata/baserock-import.morph -- name: python-core - morph: strata/python-core.morph -- name: python3-core - morph: strata/python3-core.morph +- name: python2-core + morph: strata/python2-core.morph - name: python-tools morph: strata/python-tools.morph - name: python-common @@ -57,6 +55,8 @@ strata: morph: strata/ostree-core.morph - name: coreutils-common morph: strata/coreutils-common.morph +- name: compilers-extra + morph: strata/compilers-extra.morph configuration-extensions: - extensions/set-hostname - extensions/add-config-files diff --git a/systems/devel-system-armv7-highbank.morph b/systems/devel-system-armv7-highbank.morph index 9305bd55..fd0cdfcb 100644 --- a/systems/devel-system-armv7-highbank.morph +++ b/systems/devel-system-armv7-highbank.morph @@ -36,10 +36,8 @@ strata: morph: strata/baserock-import.morph - name: nfs morph: strata/nfs.morph -- name: python-core - morph: strata/python-core.morph -- name: python3-core - morph: strata/python3-core.morph +- name: python2-core + morph: strata/python2-core.morph - name: python-tools morph: strata/python-tools.morph - name: python-common @@ -60,6 +58,8 @@ strata: morph: strata/unionfs-fuse-group.morph - name: coreutils-common morph: strata/coreutils-common.morph +- name: compilers-extra + morph: strata/compilers-extra.morph configuration-extensions: - extensions/set-hostname - extensions/add-config-files diff --git a/systems/devel-system-armv7-versatile.morph b/systems/devel-system-armv7-versatile.morph index fc1ee9c5..423648c9 100644 --- a/systems/devel-system-armv7-versatile.morph +++ b/systems/devel-system-armv7-versatile.morph @@ -36,10 +36,8 @@ strata: morph: strata/baserock-import.morph - name: nfs morph: strata/nfs.morph -- name: python-core - morph: strata/python-core.morph -- name: python3-core - morph: strata/python3-core.morph +- name: python2-core + morph: strata/python2-core.morph - name: python-tools morph: strata/python-tools.morph - name: python-common @@ -58,6 +56,8 @@ strata: morph: strata/ostree-core.morph - name: coreutils-common morph: strata/coreutils-common.morph +- name: compilers-extra + morph: strata/compilers-extra.morph configuration-extensions: - extensions/set-hostname - extensions/add-config-files diff --git a/systems/devel-system-armv7-wandboard.morph b/systems/devel-system-armv7-wandboard.morph index 4d6eabff..7e594710 100644 --- a/systems/devel-system-armv7-wandboard.morph +++ b/systems/devel-system-armv7-wandboard.morph @@ -36,10 +36,8 @@ strata: morph: strata/baserock-import.morph - name: nfs morph: strata/nfs.morph -- name: python-core - morph: strata/python-core.morph -- name: python3-core - morph: strata/python3-core.morph +- name: python2-core + morph: strata/python2-core.morph - name: python-tools morph: strata/python-tools.morph - name: python-common @@ -58,6 +56,8 @@ strata: morph: strata/ostree-core.morph - name: coreutils-common morph: strata/coreutils-common.morph +- name: compilers-extra + morph: strata/compilers-extra.morph configuration-extensions: - extensions/set-hostname - extensions/add-config-files diff --git a/systems/devel-system-armv7b-chroot.morph b/systems/devel-system-armv7b-chroot.morph index 01187420..0c9344c1 100644 --- a/systems/devel-system-armv7b-chroot.morph +++ b/systems/devel-system-armv7b-chroot.morph @@ -27,10 +27,8 @@ strata: morph: strata/openstack-clients.morph - name: baserock-import morph: strata/baserock-import.morph -- name: python-core - morph: strata/python-core.morph -- name: python3-core - morph: strata/python3-core.morph +- name: python2-core + morph: strata/python2-core.morph - name: python-tools morph: strata/python-tools.morph - name: python-common @@ -49,6 +47,8 @@ strata: morph: strata/ostree-core.morph - name: coreutils-common morph: strata/coreutils-common.morph +- name: compilers-extra + morph: strata/compilers-extra.morph configuration-extensions: - extensions/set-hostname - extensions/add-config-files diff --git a/systems/devel-system-armv7b-highbank.morph b/systems/devel-system-armv7b-highbank.morph index acd68b5f..4bd34876 100644 --- a/systems/devel-system-armv7b-highbank.morph +++ b/systems/devel-system-armv7b-highbank.morph @@ -32,10 +32,8 @@ strata: morph: strata/baserock-import.morph - name: nfs morph: strata/nfs.morph -- name: python-core - morph: strata/python-core.morph -- name: python3-core - morph: strata/python3-core.morph +- name: python2-core + morph: strata/python2-core.morph - name: python-tools morph: strata/python-tools.morph - name: python-common @@ -56,6 +54,8 @@ strata: morph: strata/unionfs-fuse-group.morph - name: coreutils-common morph: strata/coreutils-common.morph +- name: compilers-extra + morph: strata/compilers-extra.morph configuration-extensions: - extensions/set-hostname - extensions/add-config-files diff --git a/systems/devel-system-armv7l-altera-socfpga-devkit.morph b/systems/devel-system-armv7l-altera-socfpga-devkit.morph new file mode 100644 index 00000000..94f85ec2 --- /dev/null +++ b/systems/devel-system-armv7l-altera-socfpga-devkit.morph @@ -0,0 +1,62 @@ +name: devel-system-armv7l-altera-socfpga-devkit +kind: system +description: | + A system with useful tools for doing Baserock development. + + For use on Altera SoCFPGA development kit, using little-endian word + order. +arch: armv7lhf +strata: +- name: build-essential + morph: strata/build-essential.morph +- name: core + morph: strata/core.morph +- name: foundation + morph: strata/foundation.morph +- name: bsp-armv7l-altera-socfpga-devkit + morph: strata/bsp-armv7l-altera-socfpga-devkit.morph +- name: tools + morph: strata/tools.morph +- name: python-cliapp + morph: strata/python-cliapp.morph +- name: python-pygobject + morph: strata/python-pygobject.morph +- name: python-wsgi + morph: strata/python-wsgi.morph +- name: morph-utils + morph: strata/morph-utils.morph +- name: nodejs + morph: strata/nodejs.morph +- name: ruby + morph: strata/ruby.morph +- name: lorry + morph: strata/lorry.morph +- name: baserock-import + morph: strata/baserock-import.morph +- name: nfs + morph: strata/nfs.morph +- name: python2-core + morph: strata/python2-core.morph +- name: python-tools + morph: strata/python-tools.morph +- name: python-common + morph: strata/python-common.morph +- name: devtools + morph: strata/devtools.morph +- name: ansible + morph: strata/ansible.morph +- name: swift + morph: strata/swift.morph +- name: libsoup-common + morph: strata/libsoup-common.morph +- name: ostree-core + morph: strata/ostree-core.morph +- name: compilers-extra + morph: strata/compilers-extra.morph +configuration-extensions: +- extensions/set-hostname +- extensions/add-config-files +- extensions/nfsboot +- extensions/install-files +- extensions/fstab +- extensions/install-essential-files diff --git a/systems/devel-system-armv7lhf-chroot.morph b/systems/devel-system-armv7lhf-chroot.morph index 180779d9..203d5ef8 100644 --- a/systems/devel-system-armv7lhf-chroot.morph +++ b/systems/devel-system-armv7lhf-chroot.morph @@ -35,10 +35,8 @@ strata: morph: strata/lorry.morph - name: baserock-import morph: strata/baserock-import.morph -- name: python-core - morph: strata/python-core.morph -- name: python3-core - morph: strata/python3-core.morph +- name: python2-core + morph: strata/python2-core.morph - name: python-tools morph: strata/python-tools.morph - name: python-common @@ -57,6 +55,8 @@ strata: morph: strata/ostree-core.morph - name: coreutils-common morph: strata/coreutils-common.morph +- name: compilers-extra + morph: strata/compilers-extra.morph configuration-extensions: - extensions/set-hostname - extensions/add-config-files diff --git a/systems/devel-system-armv7lhf-highbank.morph b/systems/devel-system-armv7lhf-highbank.morph index 8660e698..c0ccfa66 100644 --- a/systems/devel-system-armv7lhf-highbank.morph +++ b/systems/devel-system-armv7lhf-highbank.morph @@ -39,10 +39,8 @@ strata: morph: strata/baserock-import.morph - name: nfs morph: strata/nfs.morph -- name: python-core - morph: strata/python-core.morph -- name: python3-core - morph: strata/python3-core.morph +- name: python2-core + morph: strata/python2-core.morph - name: python-tools morph: strata/python-tools.morph - name: python-common @@ -63,6 +61,8 @@ strata: morph: strata/unionfs-fuse-group.morph - name: coreutils-common morph: strata/coreutils-common.morph +- name: compilers-extra + morph: strata/compilers-extra.morph configuration-extensions: - extensions/set-hostname - extensions/add-config-files diff --git a/systems/devel-system-armv7lhf-jetson.morph b/systems/devel-system-armv7lhf-jetson.morph index bac4f2ab..14bc1b27 100644 --- a/systems/devel-system-armv7lhf-jetson.morph +++ b/systems/devel-system-armv7lhf-jetson.morph @@ -39,10 +39,8 @@ strata: morph: strata/lorry.morph - name: baserock-import morph: strata/baserock-import.morph -- name: python-core - morph: strata/python-core.morph -- name: python3-core - morph: strata/python3-core.morph +- name: python2-core + morph: strata/python2-core.morph - name: python-tools morph: strata/python-tools.morph - name: python-common @@ -61,6 +59,8 @@ strata: morph: strata/ostree-core.morph - name: coreutils-common morph: strata/coreutils-common.morph +- name: compilers-extra + morph: strata/compilers-extra.morph configuration-extensions: - extensions/set-hostname - extensions/add-config-files diff --git a/systems/devel-system-armv7lhf-wandboard.morph b/systems/devel-system-armv7lhf-wandboard.morph index c11bbbb6..6cf81846 100644 --- a/systems/devel-system-armv7lhf-wandboard.morph +++ b/systems/devel-system-armv7lhf-wandboard.morph @@ -39,10 +39,8 @@ strata: morph: strata/baserock-import.morph - name: nfs morph: strata/nfs.morph -- name: python-core - morph: strata/python-core.morph -- name: python3-core - morph: strata/python3-core.morph +- name: python2-core + morph: strata/python2-core.morph - name: python-tools morph: strata/python-tools.morph - name: python-common @@ -61,6 +59,8 @@ strata: morph: strata/ostree-core.morph - name: coreutils-common morph: strata/coreutils-common.morph +- name: compilers-extra + morph: strata/compilers-extra.morph configuration-extensions: - extensions/set-hostname - extensions/add-config-files diff --git a/systems/devel-system-armv8b64.morph b/systems/devel-system-armv8b64.morph index 001de4b5..ab8dcd1b 100644 --- a/systems/devel-system-armv8b64.morph +++ b/systems/devel-system-armv8b64.morph @@ -40,10 +40,8 @@ strata: morph: strata/baserock-import.morph - name: nfs morph: strata/nfs.morph -- name: python-core - morph: strata/python-core.morph -- name: python3-core - morph: strata/python3-core.morph +- name: python2-core + morph: strata/python2-core.morph - name: python-tools morph: strata/python-tools.morph - name: python-common @@ -60,6 +58,8 @@ strata: morph: strata/ostree-core.morph - name: coreutils-common morph: strata/coreutils-common.morph +- name: compilers-extra + morph: strata/compilers-extra.morph configuration-extensions: - extensions/set-hostname - extensions/add-config-files diff --git a/systems/devel-system-armv8l64.morph b/systems/devel-system-armv8l64.morph index cde9fe18..3cf21388 100644 --- a/systems/devel-system-armv8l64.morph +++ b/systems/devel-system-armv8l64.morph @@ -38,10 +38,8 @@ strata: morph: strata/baserock-import.morph - name: nfs morph: strata/nfs.morph -- name: python-core - morph: strata/python-core.morph -- name: python3-core - morph: strata/python3-core.morph +- name: python2-core + morph: strata/python2-core.morph - name: python-tools morph: strata/python-tools.morph - name: python-common @@ -60,6 +58,8 @@ strata: morph: strata/ostree-core.morph - name: coreutils-common morph: strata/coreutils-common.morph +- name: compilers-extra + morph: strata/compilers-extra.morph configuration-extensions: - extensions/set-hostname - extensions/add-config-files diff --git a/systems/devel-system-ppc64-chroot.morph b/systems/devel-system-ppc64-chroot.morph index 59b03bdd..5e4c5f98 100644 --- a/systems/devel-system-ppc64-chroot.morph +++ b/systems/devel-system-ppc64-chroot.morph @@ -33,10 +33,8 @@ strata: morph: strata/lorry.morph - name: baserock-import morph: strata/baserock-import.morph -- name: python-core - morph: strata/python-core.morph -- name: python3-core - morph: strata/python3-core.morph +- name: python2-core + morph: strata/python2-core.morph - name: python-tools morph: strata/python-tools.morph - name: python-common @@ -55,6 +53,8 @@ strata: morph: strata/ostree-core.morph - name: coreutils-common morph: strata/coreutils-common.morph +- name: compilers-extra + morph: strata/compilers-extra.morph configuration-extensions: - extensions/set-hostname - extensions/add-config-files diff --git a/systems/devel-system-ppc64-generic.morph b/systems/devel-system-ppc64-generic.morph index 0a077609..be76353c 100644 --- a/systems/devel-system-ppc64-generic.morph +++ b/systems/devel-system-ppc64-generic.morph @@ -36,10 +36,8 @@ strata: morph: strata/baserock-import.morph - name: nfs morph: strata/nfs.morph -- name: python-core - morph: strata/python-core.morph -- name: python3-core - morph: strata/python3-core.morph +- name: python2-core + morph: strata/python2-core.morph - name: python-tools morph: strata/python-tools.morph - name: python-common @@ -58,6 +56,8 @@ strata: morph: strata/ostree-core.morph - name: coreutils-common morph: strata/coreutils-common.morph +- name: compilers-extra + morph: strata/compilers-extra.morph configuration-extensions: - extensions/set-hostname - extensions/add-config-files diff --git a/systems/devel-system-x86_32-chroot.morph b/systems/devel-system-x86_32-chroot.morph index b071abfc..bcd0acfc 100644 --- a/systems/devel-system-x86_32-chroot.morph +++ b/systems/devel-system-x86_32-chroot.morph @@ -35,10 +35,8 @@ strata: morph: strata/lorry.morph - name: baserock-import morph: strata/baserock-import.morph -- name: python-core - morph: strata/python-core.morph -- name: python3-core - morph: strata/python3-core.morph +- name: python2-core + morph: strata/python2-core.morph - name: python-tools morph: strata/python-tools.morph - name: python-common @@ -57,6 +55,8 @@ strata: morph: strata/ostree-core.morph - name: coreutils-common morph: strata/coreutils-common.morph +- name: compilers-extra + morph: strata/compilers-extra.morph configuration-extensions: - extensions/set-hostname - extensions/add-config-files diff --git a/systems/devel-system-x86_32-generic.morph b/systems/devel-system-x86_32-generic.morph index 9f792f30..c03c8b73 100644 --- a/systems/devel-system-x86_32-generic.morph +++ b/systems/devel-system-x86_32-generic.morph @@ -40,10 +40,8 @@ strata: morph: strata/baserock-import.morph - name: nfs morph: strata/nfs.morph -- name: python-core - morph: strata/python-core.morph -- name: python3-core - morph: strata/python3-core.morph +- name: python2-core + morph: strata/python2-core.morph - name: python-tools morph: strata/python-tools.morph - name: python-common @@ -62,6 +60,8 @@ strata: morph: strata/ostree-core.morph - name: coreutils-common morph: strata/coreutils-common.morph +- name: compilers-extra + morph: strata/compilers-extra.morph configuration-extensions: - extensions/set-hostname - extensions/add-config-files diff --git a/systems/devel-system-x86_64-chroot.morph b/systems/devel-system-x86_64-chroot.morph index 5be9910c..49fc75af 100644 --- a/systems/devel-system-x86_64-chroot.morph +++ b/systems/devel-system-x86_64-chroot.morph @@ -37,10 +37,8 @@ strata: morph: strata/lorry.morph - name: baserock-import morph: strata/baserock-import.morph -- name: python-core - morph: strata/python-core.morph -- name: python3-core - morph: strata/python3-core.morph +- name: python2-core + morph: strata/python2-core.morph - name: python-tools morph: strata/python-tools.morph - name: python-common @@ -59,6 +57,8 @@ strata: morph: strata/ostree-core.morph - name: coreutils-common morph: strata/coreutils-common.morph +- name: compilers-extra + morph: strata/compilers-extra.morph configuration-extensions: - extensions/set-hostname - extensions/add-config-files diff --git a/systems/devel-system-x86_64-generic.morph b/systems/devel-system-x86_64-generic.morph index ae0c97e8..5ee32cc2 100644 --- a/systems/devel-system-x86_64-generic.morph +++ b/systems/devel-system-x86_64-generic.morph @@ -40,10 +40,8 @@ strata: morph: strata/baserock-import.morph - name: nfs morph: strata/nfs.morph -- name: python-core - morph: strata/python-core.morph -- name: python3-core - morph: strata/python3-core.morph +- name: python2-core + morph: strata/python2-core.morph - name: python-tools morph: strata/python-tools.morph - name: python-common @@ -62,6 +60,8 @@ strata: morph: strata/ostree-core.morph - name: coreutils-common morph: strata/coreutils-common.morph +- name: compilers-extra + morph: strata/compilers-extra.morph configuration-extensions: - extensions/set-hostname - extensions/add-config-files diff --git a/systems/devel-system-x86_64-vagrant.morph b/systems/devel-system-x86_64-vagrant.morph index 4a91f84b..e142c7c5 100644 --- a/systems/devel-system-x86_64-vagrant.morph +++ b/systems/devel-system-x86_64-vagrant.morph @@ -38,10 +38,8 @@ strata: morph: strata/lorry.morph - name: baserock-import morph: strata/baserock-import.morph -- name: python-core - morph: strata/python-core.morph -- name: python3-core - morph: strata/python3-core.morph +- name: python2-core + morph: strata/python2-core.morph - name: python-tools morph: strata/python-tools.morph - name: python-common @@ -60,6 +58,8 @@ strata: morph: strata/ostree-core.morph - name: coreutils-common morph: strata/coreutils-common.morph +- name: compilers-extra + morph: strata/compilers-extra.morph configuration-extensions: - extensions/set-hostname - extensions/add-config-files diff --git a/systems/genivi-baseline-system-armv7lhf-jetson.morph b/systems/genivi-baseline-system-armv7lhf-jetson.morph index 535696f6..59e2c86f 100644 --- a/systems/genivi-baseline-system-armv7lhf-jetson.morph +++ b/systems/genivi-baseline-system-armv7lhf-jetson.morph @@ -31,8 +31,8 @@ strata: morph: strata/wayland-generic.morph - name: graphics-common morph: strata/graphics-common.morph -- name: input-common - morph: strata/input-common.morph +- name: input-genivi + morph: strata/input-genivi.morph - name: mesa-common morph: strata/mesa-common.morph - name: x-common @@ -47,3 +47,4 @@ configuration-extensions: - extensions/strip-gplv3 - extensions/fstab - extensions/install-essential-files +- extensions/genivi diff --git a/systems/genivi-baseline-system-armv7lhf-versatile.morph b/systems/genivi-baseline-system-armv7lhf-versatile.morph index c1425115..6a69e3b2 100644 --- a/systems/genivi-baseline-system-armv7lhf-versatile.morph +++ b/systems/genivi-baseline-system-armv7lhf-versatile.morph @@ -31,8 +31,8 @@ strata: morph: strata/wayland-generic.morph - name: graphics-common morph: strata/graphics-common.morph -- name: input-common - morph: strata/input-common.morph +- name: input-genivi + morph: strata/input-genivi.morph - name: x-common morph: strata/x-common.morph - name: weston-genivi @@ -45,3 +45,4 @@ configuration-extensions: - extensions/strip-gplv3 - extensions/fstab - extensions/install-essential-files +- extensions/genivi diff --git a/systems/genivi-baseline-system-x86_64-generic.morph b/systems/genivi-baseline-system-x86_64-generic.morph index da0a1b3a..693437b4 100644 --- a/systems/genivi-baseline-system-x86_64-generic.morph +++ b/systems/genivi-baseline-system-x86_64-generic.morph @@ -31,8 +31,8 @@ strata: morph: strata/wayland-generic.morph - name: graphics-common morph: strata/graphics-common.morph -- name: input-common - morph: strata/input-common.morph +- name: input-genivi + morph: strata/input-genivi.morph - name: llvm-common morph: strata/llvm-common.morph - name: mesa-common @@ -48,3 +48,4 @@ configuration-extensions: - extensions/install-files - extensions/strip-gplv3 - extensions/install-essential-files +- extensions/genivi diff --git a/systems/genivi-demo-platform-armv7lhf-jetson.morph b/systems/genivi-demo-platform-armv7lhf-jetson.morph new file mode 100644 index 00000000..d683a33e --- /dev/null +++ b/systems/genivi-demo-platform-armv7lhf-jetson.morph @@ -0,0 +1,71 @@ +name: genivi-demo-platform-armv7lhf-jetson +kind: system +description: A GENIVI demo platform for a 64-bit x86 system. +arch: armv7lhf +strata: +- name: build-essential + morph: strata/build-essential.morph +- name: core + morph: strata/core.morph +- name: python2-core + morph: strata/python2-core.morph +- name: glib-common + morph: strata/glib-common.morph +- name: foundation + morph: strata/foundation.morph +- name: bsp-jetson + morph: strata/bsp-jetson.morph +- name: connectivity + morph: strata/connectivity.morph +- name: connman-common + morph: strata/connman-common.morph +- name: audio-bluetooth + morph: strata/audio-bluetooth.morph +- name: libdrm-common + morph: strata/libdrm-common.morph +- name: multimedia-common + morph: strata/multimedia-common.morph +- name: multimedia-gstreamer + morph: strata/multimedia-gstreamer.morph +- name: genivi + morph: strata/genivi.morph +- name: wayland-generic + morph: strata/wayland-generic.morph +- name: graphics-common + morph: strata/graphics-common.morph +- name: input-genivi + morph: strata/input-genivi.morph +- name: mesa-common + morph: strata/mesa-common.morph +- name: x-common + morph: strata/x-common.morph +- name: weston-genivi + morph: strata/weston-genivi.morph +- name: ruby + morph: strata/ruby.morph +- name: icu-common + morph: strata/icu-common.morph +- name: qt5-tools + morph: strata/qt5-tools.morph +- name: qt5-tools-qtmultimedia + morph: strata/qt5-tools-qtmultimedia.morph +- name: qt5-tools-qtwebkit + morph: strata/qt5-tools-qtwebkit.morph +- name: qt5-tools-qtwayland-genivi + morph: strata/qt5-tools-qtwayland-genivi.morph +- name: python-pygobject + morph: strata/python-pygobject.morph +- name: genivi-demo-platform-libs + morph: strata/genivi-demo-platform-libs.morph +- name: genivi-demo-platform + morph: strata/genivi-demo-platform.morph +- name: tools + morph: strata/tools.morph +configuration-extensions: +- extensions/set-hostname +- extensions/add-config-files +- extensions/nfsboot +- extensions/install-files +- extensions/fstab +- extensions/install-essential-files +- extensions/genivi diff --git a/systems/genivi-demo-platform-x86_64-generic.morph b/systems/genivi-demo-platform-x86_64-generic.morph new file mode 100644 index 00000000..7b92faf1 --- /dev/null +++ b/systems/genivi-demo-platform-x86_64-generic.morph @@ -0,0 +1,73 @@ +name: genivi-demo-platform-x86_64-generic +kind: system +description: A GENIVI demo platform for a 64-bit x86 system. +arch: x86_64 +strata: +- name: build-essential + morph: strata/build-essential.morph +- name: core + morph: strata/core.morph +- name: python2-core + morph: strata/python2-core.morph +- name: glib-common + morph: strata/glib-common.morph +- name: foundation + morph: strata/foundation.morph +- name: bsp-x86_64-generic + morph: strata/bsp-x86_64-generic.morph +- name: connectivity + morph: strata/connectivity.morph +- name: connman-common + morph: strata/connman-common.morph +- name: audio-bluetooth + morph: strata/audio-bluetooth.morph +- name: libdrm-common + morph: strata/libdrm-common.morph +- name: multimedia-common + morph: strata/multimedia-common.morph +- name: multimedia-gstreamer + morph: strata/multimedia-gstreamer.morph +- name: genivi + morph: strata/genivi.morph +- name: wayland-generic + morph: strata/wayland-generic.morph +- name: graphics-common + morph: strata/graphics-common.morph +- name: input-genivi + morph: strata/input-genivi.morph +- name: llvm-common + morph: strata/llvm-common.morph +- name: mesa-common + morph: strata/mesa-common.morph +- name: x-common + morph: strata/x-common.morph +- name: weston-genivi + morph: strata/weston-genivi.morph +- name: ruby + morph: strata/ruby.morph +- name: icu-common + morph: strata/icu-common.morph +- name: qt5-tools + morph: strata/qt5-tools.morph +- name: qt5-tools-qtmultimedia + morph: strata/qt5-tools-qtmultimedia.morph +- name: qt5-tools-qtwebkit + morph: strata/qt5-tools-qtwebkit.morph +- name: qt5-tools-qtwayland-genivi + morph: strata/qt5-tools-qtwayland-genivi.morph +- name: python-pygobject + morph: strata/python-pygobject.morph +- name: genivi-demo-platform-libs + morph: strata/genivi-demo-platform-libs.morph +- name: genivi-demo-platform + morph: strata/genivi-demo-platform.morph +- name: tools + morph: strata/tools.morph +configuration-extensions: +- extensions/set-hostname +- extensions/add-config-files +- extensions/nfsboot +- extensions/install-files +- extensions/fstab +- extensions/install-essential-files +- extensions/genivi diff --git a/systems/gnome-system-x86_64.morph b/systems/gnome-system-x86_64.morph new file mode 100644 index 00000000..3166a486 --- /dev/null +++ b/systems/gnome-system-x86_64.morph @@ -0,0 +1,78 @@ +name: gnome-system-x86_64 +kind: system +description: A GNOME system system. +arch: x86_64 +strata: +- name: audio-bluetooth + morph: strata/audio-bluetooth.morph +- name: bsp-x86_64-generic + morph: strata/bsp-x86_64-generic.morph +- name: build-essential + morph: strata/build-essential.morph +- name: NetworkManager-common + morph: strata/NetworkManager-common.morph +- name: core + morph: strata/core.morph +- name: foundation + morph: strata/foundation.morph +- name: glib-common + morph: strata/glib-common.morph +- name: gnome + morph: strata/gnome.morph +- name: graphics-common + morph: strata/graphics-common.morph +- name: gtk-deps + morph: strata/gtk-deps.morph +- name: gtk2 + morph: strata/gtk2.morph +- name: gtk3 + morph: strata/gtk3.morph +- name: input-common + morph: strata/input-common.morph +- name: llvm-common + morph: strata/llvm-common.morph +- name: mesa-common + morph: strata/mesa-common.morph +- name: multimedia-common + morph: strata/multimedia-common.morph +- name: multimedia-gstreamer + morph: strata/multimedia-gstreamer.morph +- name: python2-core + morph: strata/python2-core.morph +- name: python-pygobject + morph: strata/python-pygobject.morph +- name: libsoup-common + morph: strata/libsoup-common.morph +- name: ruby + morph: strata/ruby.morph +- name: tools + morph: strata/tools.morph +- name: libdrm-common + morph: strata/libdrm-common.morph +- name: wayland-generic + morph: strata/wayland-generic.morph +- name: weston-common + morph: strata/weston-common.morph +- name: x-common + morph: strata/x-common.morph +- name: x-drivers + morph: strata/x-drivers.morph +- name: x-generic + morph: strata/x-generic.morph +- name: ostree-core + morph: strata/ostree-core.morph +- name: xdg-app-common + morph: strata/xdg-app-common.morph +- name: network-security + morph: strata/network-security.morph +- name: icu-common + morph: strata/icu-common.morph +- name: samba + morph: strata/samba.morph +- name: cups + morph: strata/cups.morph +configuration-extensions: +- extensions/set-hostname +- extensions/add-config-files +- extensions/install-files +- extensions/install-essential-files diff --git a/systems/installer-system-armv8b64.morph b/systems/installer-system-armv8b64.morph index 860a6231..824e2dab 100644 --- a/systems/installer-system-armv8b64.morph +++ b/systems/installer-system-armv8b64.morph @@ -8,10 +8,8 @@ strata: morph: strata/build-essential.morph - name: core morph: strata/core.morph -- name: python-core - morph: strata/python-core.morph -- name: python3-core - morph: strata/python3-core.morph +- name: python2-core + morph: strata/python2-core.morph - name: foundation morph: strata/foundation.morph - name: bsp-armv8b64-generic diff --git a/systems/installer-system-x86_64.morph b/systems/installer-system-x86_64.morph index 1e854f33..aa102c15 100644 --- a/systems/installer-system-x86_64.morph +++ b/systems/installer-system-x86_64.morph @@ -8,10 +8,8 @@ strata: morph: strata/build-essential.morph - name: core morph: strata/core.morph -- name: python-core - morph: strata/python-core.morph -- name: python3-core - morph: strata/python3-core.morph +- name: python2-core + morph: strata/python2-core.morph - name: foundation morph: strata/foundation.morph - name: bsp-x86_64-generic diff --git a/systems/java-build-system-x86_64-generic.morph b/systems/java-build-system-x86_64-generic.morph index f0830980..b60637ba 100644 --- a/systems/java-build-system-x86_64-generic.morph +++ b/systems/java-build-system-x86_64-generic.morph @@ -43,10 +43,8 @@ strata: morph: strata/baserock-import.morph - name: nfs morph: strata/nfs.morph -- name: python-core - morph: strata/python-core.morph -- name: python3-core - morph: strata/python3-core.morph +- name: python2-core + morph: strata/python2-core.morph - name: python-tools morph: strata/python-tools.morph - name: python-common diff --git a/systems/nodejs-system-x86_64.morph b/systems/nodejs-system-x86_64.morph index b758d5bd..7fba330b 100644 --- a/systems/nodejs-system-x86_64.morph +++ b/systems/nodejs-system-x86_64.morph @@ -12,6 +12,8 @@ strata: morph: strata/foundation.morph - name: bsp-x86_64-generic morph: strata/bsp-x86_64-generic.morph +- name: python2-core + morph: strata/python2-core.morph - name: nodejs morph: strata/nodejs.morph configuration-extensions: diff --git a/systems/openstack-system-x86_64.morph b/systems/openstack-system-x86_64.morph index 8c191be6..7cb8c20f 100644 --- a/systems/openstack-system-x86_64.morph +++ b/systems/openstack-system-x86_64.morph @@ -7,10 +7,8 @@ strata: morph: strata/build-essential.morph - name: core morph: strata/core.morph -- name: python-core - morph: strata/python-core.morph -- name: python3-core - morph: strata/python3-core.morph +- name: python2-core + morph: strata/python2-core.morph - name: python-pygobject morph: strata/python-pygobject.morph - name: python-common diff --git a/systems/qt4-devel-system-x86_64-generic.morph b/systems/qt4-devel-system-x86_64-generic.morph index 0285fa70..e8230c88 100644 --- a/systems/qt4-devel-system-x86_64-generic.morph +++ b/systems/qt4-devel-system-x86_64-generic.morph @@ -38,6 +38,8 @@ strata: morph: strata/connman-common.morph - name: enlightenment morph: strata/enlightenment.morph +- name: icu-common + morph: strata/icu-common.morph configuration-extensions: - extensions/set-hostname - extensions/add-config-files diff --git a/systems/qt5-devel-system-x86_64-generic.morph b/systems/qt5-devel-system-x86_64-generic.morph index c342ceb9..b68faf79 100644 --- a/systems/qt5-devel-system-x86_64-generic.morph +++ b/systems/qt5-devel-system-x86_64-generic.morph @@ -40,6 +40,8 @@ strata: morph: strata/connman-common.morph - name: enlightenment morph: strata/enlightenment.morph +- name: icu-common + morph: strata/icu-common.morph configuration-extensions: - extensions/set-hostname - extensions/add-config-files diff --git a/systems/swift-system-x86_64.morph b/systems/swift-system-x86_64.morph index 139c0028..f850ec45 100644 --- a/systems/swift-system-x86_64.morph +++ b/systems/swift-system-x86_64.morph @@ -15,10 +15,8 @@ strata: morph: strata/swift.morph - name: ntpd morph: strata/ntpd.morph -- name: python-core - morph: strata/python-core.morph -- name: python3-core - morph: strata/python3-core.morph +- name: python2-core + morph: strata/python2-core.morph - name: python-common morph: strata/python-common.morph - name: ansible diff --git a/systems/trove-system-x86_64.morph b/systems/trove-system-x86_64.morph index 3ffb8995..bd0a0ff4 100644 --- a/systems/trove-system-x86_64.morph +++ b/systems/trove-system-x86_64.morph @@ -11,10 +11,8 @@ strata: morph: strata/foundation.morph - name: core morph: strata/core.morph -- name: python-core - morph: strata/python-core.morph -- name: python3-core - morph: strata/python3-core.morph +- name: python2-core + morph: strata/python2-core.morph - name: tools morph: strata/tools.morph - name: python-cliapp diff --git a/systems/web-system-x86_64-generic.morph b/systems/web-system-x86_64-generic.morph index 4101f615..090abcbe 100644 --- a/systems/web-system-x86_64-generic.morph +++ b/systems/web-system-x86_64-generic.morph @@ -29,8 +29,12 @@ strata: morph: strata/erlang.morph - name: ruby morph: strata/ruby.morph +- name: python2-core + morph: strata/python2-core.morph - name: nodejs morph: strata/nodejs.morph +- name: icu-common + morph: strata/icu-common.morph configuration-extensions: - extensions/set-hostname - extensions/add-config-files diff --git a/systems/xfce-system.morph b/systems/xfce-system-x86_64.morph index 6a1e0b2b..fedddd57 100644 --- a/systems/xfce-system.morph +++ b/systems/xfce-system-x86_64.morph @@ -1,16 +1,16 @@ name: xfce-system kind: system -description: A GENIVI devel with XFCE +description: A system with the XFCE desktop arch: x86_64 strata: - name: build-essential morph: strata/build-essential.morph - name: core morph: strata/core.morph -- name: python-core - morph: strata/python-core.morph -- name: python3-core - morph: strata/python3-core.morph +- name: coreutils-common + morph: strata/coreutils-common.morph +- name: python2-core + morph: strata/python2-core.morph - name: foundation morph: strata/foundation.morph - name: bsp-x86_64-generic @@ -19,22 +19,36 @@ strata: morph: strata/connectivity.morph - name: connman-common morph: strata/connman-common.morph +- name: input-common + morph: strata/input-common.morph - name: audio-bluetooth morph: strata/audio-bluetooth.morph +- name: libdrm-common + morph: strata/libdrm-common.morph +- name: mesa-common + morph: strata/mesa-common.morph +- name: graphics-common + morph: strata/graphics-common.morph +- name: wayland-generic + morph: strata/wayland-generic.morph - name: x-common morph: strata/x-common.morph - name: x-generic morph: strata/x-generic.morph +- name: x-drivers + morph: strata/x-drivers.morph - name: multimedia-common morph: strata/multimedia-common.morph - name: multimedia-gstreamer morph: strata/multimedia-gstreamer.morph -- name: genivi - morph: strata/genivi.morph +- name: gtk-deps + morph: strata/gtk-deps.morph - name: gtk2 morph: strata/gtk2.morph - name: tools morph: strata/tools.morph +- name: devtools + morph: strata/devtools.morph - name: python-cliapp morph: strata/python-cliapp.morph - name: python-pygobject |