SGIdev has a software distribution service available at http://ports.sgi.sh. Developers creating ported software can upload compiled versions to this repository to make them available for other users.
The SGIdev software distribution service is backed by an Amazon S3 bucket. To upload files to this S3 bucket, the recommended free solution is the AWS CLI, however any S3 compatible graphical file explorer or S3 API access will also work.
Amazon provides instructions for installing the AWS CLI at: https://docs.aws.amazon.com/cli/latest/userguide/install-bundle.html.
The credentials used to access Amazon S3 are in the form of an “AWS Access Key” and “AWS Secret Key.” These credentials are one per individual and should not be shared with anyone else. Just to keep overhead low, please only request credentials once you have ported software to upload.
To obtain your personal credentials, please tag @Elf#6313
in the SGIdev Discord #general
channel. Please include the project(s) that you will be uploading builds for when requesting credentials.
Once you have obtained credentials and have installed the AWS CLI, run aws configure
to set them up on the machine you will upload from and provide the Access Key and Secret Key when prompted.
us-east-2
None
If you utilize the AWS CLI for more than just SGIdev uploads, we recommend setting up named profiles.
Projects are organized by software category and port name, under ports.sgi.sh/{category}/{name}
, e.g. ports.sgi.sh/editors/emacs
. To keep consistency, we suggest using the {category}
and {name}
values from the NetBSD ports list, found at: http://cdn.netbsd.org/pub/pkgsrc/current/pkgsrc/README.html. This will allow users to more easily locate software that they are familiar with.
To upload new software, utilize the AWS CLI as follows:
aws s3 cp {package} s3://sgi-dev-public/{category}/{name}/
(note the trailing slash).
This will make your software appear at: http://ports.sgi.sh/{category}/{name}/{package}
For example, if one performed the following command:
aws s3 cp emacs-26.1.tgz s3://sgi-dev-public/editors/emacs/
, the software would then be available at http://ports.sgi.sh/editors/emacs/emacs-26.1-201901171502.tgz
.
Note: Directory listings are generated once an hour (on the :21 minute mark), and each index.html
(like all other objects) may be cached for up to a day. Directory listings thus will only eventually, not immediately, reflect the most up to date software listings.
While space in S3 is both cheap and unlimited, package maintainers are encouraged to remove erroneous uploads and packages with major security issues.
To remove a file, utilize the AWS CLI as follows:
aws s3 rm s3://sgi-dev-public/{category}/{name}/{package}
For example:
aws s3 rm s3://sgi-dev-public/editors/emacs/
, the software would then be available at http://ports.sgi.sh/editors/emacs/emacs-26.1-201901171502.tgz
`
Please note that the SGIdev software repository is heavily cached in a Global CDN (Amazon CloudFront). This means that if you upload a file (e.g. emacs-26.1-201901171502.tgz
), realize there is an issue with the package, and then re-upload over the same file name, people may still receive the old (non-functional) file for up to a day before the cache expires.
For this reason we suggest both not overwriting old files, as well as versioning your uploaded files by appending -{YYYYMMDDhhmm}
to the file name before the suffix, where:
YYYY
is the four digit yearMM
is the two digit monthDD
is the two digit dayhh
is the two digit hour (24-hour system)mm
is the two digit minuteIf collaborating with others in multiple time zones, usage of UTC
is recommended for these time/date stamps. This is just a suggested format that allows for easy sorting to find the most recently uploaded package.
Other users are highly encouraged to mirror the SGIdev software repository, however we also encourage you to do this in an AWS native way which will lower our costs and provide you better performance. This is achieved by using native AWS access to the S3 bucket and not a general spidering tool like HTtrack.
If you are interested in mirroring our software repository, please:
@Elf#6313
in the SGIdev Discord #general
channel for cross-account access to the sgi-dev-public
bucket.You can then utilize a tool like aws s3 sync
to easily, incrementally mirror the contents to either another S3 bucket or a local file system.
We will put more detailed mirroring instructions up shortly.