{"id":18708904,"url":"https://github.com/elektrobit/corbos_scm","last_synced_at":"2025-11-09T10:30:32.808Z","repository":{"id":43119090,"uuid":"439645347","full_name":"Elektrobit/corbos_scm","owner":"Elektrobit","description":"OBS service Debian Sources","archived":false,"fork":false,"pushed_at":"2022-03-17T11:20:10.000Z","size":136,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-12-28T07:41:56.953Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Elektrobit.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-12-18T15:10:07.000Z","updated_at":"2022-09-18T16:42:43.000Z","dependencies_parsed_at":"2022-09-07T02:40:39.796Z","dependency_job_id":null,"html_url":"https://github.com/Elektrobit/corbos_scm","commit_stats":null,"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Elektrobit%2Fcorbos_scm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Elektrobit%2Fcorbos_scm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Elektrobit%2Fcorbos_scm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Elektrobit%2Fcorbos_scm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Elektrobit","download_url":"https://codeload.github.com/Elektrobit/corbos_scm/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239571580,"owners_count":19661165,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-07T12:25:39.619Z","updated_at":"2025-02-19T00:19:28.195Z","avatar_url":"https://github.com/Elektrobit.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"Corbos SCM - OBS service\n========================\n\nAn Open Build Service (OBS) service to fetch Debian\npackages sources. The service can be used for Debian/Ubuntu\nbased packages and utilizes the ubuntu-dev-tools from\na container. Calling from a container allows to use the Ubuntu\ndevtools toolchain independently from the host system as long\nas the host supports the podman container engine\n\nAs an example, the following steps are needed to build\nthe `curl` package from Debian for Ubuntu(20.10) in OBS.\n\n1. Install `corbos_scm` service\n\n   Install the service provided at:\n\n   * https://build.opensuse.org/package/show/home:marcus.schaefer/python-corbos_scm\n\n   locally and on the remote backend server of your build service\n\n   Warning:\n     **The example below can only work if the corbos_scm service\n     was installed on the backend server of your build service.**\n\n2. Create a package in OBS\n\n   .. code:: bash\n\n      osc mkpac curl\n\n3. Create the `_service` file and add it\n\n   .. code:: bash\n\n      cd curl\n      touch _service\n      osc add _service\n\n4. Add the following contents to the `_service` file\n\n   .. code:: xml\n\n      \u003cservices\u003e\n        \u003cservice name=\"corbos_scm\"\u003e\n          \u003cparam name=\"registry\"\u003eregistry.example.com\u003c/param\u003e\n          \u003cparam name=\"container\"\u003eubdevtools:latest\u003c/param\u003e\n          \u003cparam name=\"package\"\u003ecurl\u003c/param\u003e\n        \u003c/service\u003e\n      \u003c/services\u003e\n\n5. Commit the service setup\n\n   .. code:: bash\n\n      osc ci\n\n6. Add Ubuntu repository to allow dependency resolving and\n   the package build\n\n   .. code:: bash\n\n      osc meta -e prj\n\n   Add a repo definition which allows to resolve the required\n   build dependencies. The following is just an example matching\n   repos as they exist in the public build service provided by\n   SUSE.\n\n   Note:\n     **Be aware that the following repo definiton just serves\n     as an example and will most likely not be available in\n     the exact same way on a custom OBS server.**\n\n   .. code:: xml\n\n      \u003crepository name=\"xUbuntu_21.04\"\u003e\n        \u003cpath project=\"Ubuntu:21.04\" repository=\"universe\"/\u003e\n        \u003carch\u003ex86_64\u003c/arch\u003e\n      \u003c/repository\u003e\n\nContainer Setup\n---------------\n\nIf there is no container with ubuntu-dev-tools available, the\nfollowing KIWI description can be used to build one\n\n.. code:: xml\n\n   \u003cimage schemaversion=\"7.4\" name=\"ubuntu-dev-tools\"\u003e\n     \u003cdescription type=\"system\"\u003e\n       \u003cauthor\u003eMarcus Schäfer\u003c/author\u003e\n       \u003ccontact\u003emarcus.schaefer@gmail.com\u003c/contact\u003e\n       \u003cspecification\u003eRuntime container ubuntu dev tools\u003c/specification\u003e\n     \u003c/description\u003e\n     \u003cpreferences\u003e\n       \u003cversion\u003e1.0.1\u003c/version\u003e\n       \u003cpackagemanager\u003eapt\u003c/packagemanager\u003e\n       \u003ctype image=\"docker\"\u003e\n         \u003ccontainerconfig name=\"ubdevtools\"/\u003e\n       \u003c/type\u003e\n     \u003c/preferences\u003e\n     \u003crepository type=\"apt-deb\" alias=\"kiwi-next-generation\" priority=\"1\" repository_gpgcheck=\"false\"\u003e\n       \u003csource path=\"obs://Virtualization:Appliances:Builder/xUbuntu_21.04\"/\u003e\n     \u003c/repository\u003e\n     \u003crepository type=\"apt-deb\" alias=\"Ubuntu-Hirsute-Universe\" distribution=\"hirsute\" components=\"main multiverse restricted universe\" repository_gpgcheck=\"false\"\u003e\n       \u003csource path=\"obs://Ubuntu:21.04/universe\"/\u003e\n     \u003c/repository\u003e\n     \u003crepository type=\"apt-deb\" alias=\"Ubuntu-Hirsute\" distribution=\"hirsute\" components=\"main multiverse restricted universe\" repository_gpgcheck=\"false\"\u003e\n       \u003csource path=\"obs://Ubuntu:21.04/standard\"/\u003e\n     \u003c/repository\u003e\n     \u003cpackages type=\"image\"\u003e\n       \u003cpackage name=\"ubuntu-dev-tools\"/\u003e\n       \u003cpackage name=\"mawk\"/\u003e\n     \u003c/packages\u003e\n     \u003cpackages type=\"bootstrap\"/\u003e\n   \u003c/image\u003e\n\nBehind the Scenes\n-----------------\n\nThe `corbos_scm` service is very simple. It uses the tooling\nprovided by the ubuntu-dev-tools to create the source files\nsuch that OBS can build the package.\n\nOn the local system the service can be tested with:\n\n.. code:: bash\n\n   osc service localrun\n\nThis call creates the mentioned data locally. For the service to\nbe effective on the remote backend of OBS, it's required to install\nit there. This is because obs creates a command call from the\ninformation provided in the `_service` file and issues that command\non its remote backend.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felektrobit%2Fcorbos_scm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Felektrobit%2Fcorbos_scm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felektrobit%2Fcorbos_scm/lists"}