{"id":23024716,"url":"https://github.com/oss/publish-scripts","last_synced_at":"2025-04-02T19:41:30.577Z","repository":{"id":16170781,"uuid":"18917045","full_name":"oss/publish-scripts","owner":"oss","description":"Scripts for publishing Solaris packages.","archived":false,"fork":false,"pushed_at":"2014-05-02T16:03:27.000Z","size":176,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":28,"default_branch":"master","last_synced_at":"2025-02-08T10:21:17.366Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/oss.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-04-18T15:33:31.000Z","updated_at":"2014-05-02T16:03:27.000Z","dependencies_parsed_at":"2022-09-03T00:01:48.284Z","dependency_job_id":null,"html_url":"https://github.com/oss/publish-scripts","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oss%2Fpublish-scripts","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oss%2Fpublish-scripts/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oss%2Fpublish-scripts/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oss%2Fpublish-scripts/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/oss","download_url":"https://codeload.github.com/oss/publish-scripts/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246882982,"owners_count":20849360,"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-12-15T13:20:52.826Z","updated_at":"2025-04-02T19:41:30.273Z","avatar_url":"https://github.com/oss.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"publish-scripts\n===============\nRutgers package publishing scripts for Solaris 9. These take built RPM packages\nand store their data in a database.\n\nThese must be run on a bootstrapped Solaris machine as it requires both yum and\napt-get.\n\nOverview\n--------\nThe new publish script ensures that published packages have their dependencies\nmet in the repository.  It accomplishes this by publishing a psuedo repository,\nwhich is the union of a set of pending packages and an existing repository. It\nthen checks the relative consistence of the psuedo repository against current\nrepository.  If the changes caused by publishing the pending packages are deemed\ntoo problematic, the psuedo-publish is rejected, and no changes happen.\nOtherwise, the changes are kept by running a publish on the actual repository.\n\nThe checker is made up of the following files:\n\n- `publish.py` - Controls the man flow of the program, builds the repository\n  with `genbasedir`, and determines what is acceptable.\n- `dep_problems.py` - Munges the output of apt-cache dump unmet and is capable\n  of qualifying differences between runs of apt-cache dump unmet.\n- `pending_scan.py` - Sees what is in the pending directories, does version\n  compares on RPMs in pending directories against RPMs of the same name in the\n  existing repositories.\n- `rpm_util.py` - Parses RPM names for package names, versions, mostly just\n  string manipulation of rpm file names.\n- `rpm_config.py` - Contains most of the \"magic constants\", like the repository\n  structure, distribution names, and Solaris versions.\n- `mail_publish.py` - Produces a summary of what publish did, and mails it to\n  anyone owning a package in the pending directory.\n- `test_*.py` - contain various sanity tests to make sure things are working as\n  expected internally.\n\n### Program Flow\n`publish` iterates over the floating distributions, using `pending_scan` to see\nwhat is in the corresponding pending directories.  If there are RPMs pending for\na given repository, publish will use `dep_problems` to find existing unmet\ndependencies in the repository, then it will publish a non-production\nrepository.  It will again use `dep_problems` to see the differences in unmet\ndependencies warrant throwing away the non-production repository; for example,\nif there is a new package with unmet dependencies.  If all is well, it will then\ncall on `mail_publish` to mail the results of the publish to people owning files\nin the pending directories.\n\nConfiguration Files\n-------------------\nThe main config file is `publishscripts.conf`, which holds information about the\nMySQL package database. This should typically be installed at `/usr/local/etc`.\n\nThe scripts use `rpm2html` and its configuration file, which is typically at\n`/etc/rpm2html.config`.\n\nDependencies\n------------\nThe scripts are extremely particular about its dependencies and requires that\nmost of them are in `/usr/local/bin`:\n\n- GNU find\n- checkrelease.sh\n- cleanup-rpm2html\n- createrepo (from yum)\n- rebuild-apt\n- rpm\n- rpm2html\n- rpmverify\n- sendmail\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foss%2Fpublish-scripts","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foss%2Fpublish-scripts","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foss%2Fpublish-scripts/lists"}