ПО, ЭВМ и АСУ из Таможенного Союза

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.



Git на sourceforge

Сообщений 1 страница 22 из 22

1

Я собираюсь сделать сайт на SourceForge (просто, чтобы попробовать).
Возможно это будет cgi-bin, написанный на руссифицированном Си (но пока нет понимания).
Для хранения текстов сайта сделаю репозиторий. Это будет git репозиторий, чтобы было единообразно с Евгением. А на SourceForge, потому что оптом.
А потом сделаю на него ссылку в шапке форума.
В шапке тогда будут "Лисофорум, Машина, Компилер, Операционка (Ныне ЯОС), Вики (ныне тхаб), Поиск Людей (ныне творецкий дом), Участники, Поиск, Регистрация, Войти"

Понимания мне не хватает в части того, как делать единый вход по всем сайтам. И вообще, и на Си, и на русифицированном Си.
Поэтому сначала там будет статическая страница (для тренировки выводимая "скриптом"), а потом как пойдёт.

(У меня была идея предложить это сделать NuShaman-у, но нет на него надежды. Он ещё массивы не сделал.)

Отредактировано Лис (2023-02-20 20:04:38)

0

2

Если разворачивать форум (или любой другой движок типа Q&A-сайта), то как сделать отправку почты про регистрацию пользователей?

Списки рассылки это другое:
https://sourceforge.net/p/forge/documentation/Mailing Lists/
«SourceForge.net provides mailing list services to all projects on an opt-in basis.»

Можно ли сделать почту, или почту и регистрацию пользователей средствами самого SourceForge?
(если я буду делать своими силами, например через zoho.eu, то логинов надо будет два - один к проекту, один к сорсфоржу)

Можно ли проинтегрироваться с регистрацией самого SourceForge, чтобы в проекте использовались его аккаунты?
https://sourceforge.net/p/forge/documentation/User Accounts/
«Users who become project developers are provided further advanced features, such as shell service. Some of these services require the use of SSH keys.»

Спросил у ChatGPT, а оно мне и говорит:
«нужно использовать OAuth 2.0, необходимо зарегистрировать приложение в SourceForge, получить ключи доступа (к чему?) и использовать их для авторизации пользователей. Подробнее читай в документации к SourceForge»

Где у него документнация? Гугл говорит:
https://sourceforge.net/p/forge/documentation/ToC/
https://sourceforge.net/p/forge/documentation/Docs Home/

Ввёл в поиске OAuth:
https://sourceforge.net/p/forge/documen … h/?q=OAuth
ноль результатов...

Может быть можно сделать наоборот? Сделать свою авторизацию (OAuth provider), а SourceForge убедить использовать её?

Сам сайт вроде крутой, и умеет в двухфакторную аутентификацию:
https://sourceforge.net/p/forge/documentation/Multifactor Authentication/

«SourceForge tools are powered by the open source Apache Allura project»
https://allura.apache.org/
https://forge-allura.apache.org/p/allura/wiki/Home/
«Allura is written in Python»
«Allura was originally developed at SourceForge»

The available extension points for Allura are:
allura.lib.plugin.AuthenticationProvider

У движка есть REST API, там есть работа с пользовательскими аккантами (правда пока не ясно, как это поможет)
https://sourceforge.net/p/forge/documentation/Allura API/

и вот уже в ней есть слово OAuth
«In order to use the API for authenticated actions, you should use the OAuth account page to create a consumer key for your application.»
«You must first register for an OAuth consumer token at https://sourceforge.net/auth/oauth/

Всё это взрывает мозг Лису. Нужно время, чтобы всё прочитать и понять - можно ли решить такую задачу или нет.

Отредактировано Лис (2023-02-22 08:12:50)

0

3

Регаюсь. Пара ссылок на память (не читал, но вдруг придётся?)
https://slashdotmedia.com/terms-of-use/
https://slashdotmedia.com/privacy-statement/
«You must confirm your account via the email before you are able to login to SourceForge.
If your email provider actively filters spam, please add "noreply@sourceforge.net" to your address book to ensure prompt delivery. »

В общем, обещанное письмо о регистрации не пришло на почту. Второй раз зарегистрироваться не получается - «Sorry, that username is invalid or taken». Залогиниться не получается - «Invalid login». Подожду пару дней...

Ага, пустили: «Welcome to the Club. Now that you've verified your account, it's time to log in below and start exploring the world of open source software. Maybe even create a project of your own. Enjoy!». Ссылку подтвердил, залогиниться получилось.

Что же там пишут про OAuth?

=== Authorized Applications ===

These are applications you have authorized to act on your behalf.
They potentially have full access to your account, so if you are no longer using an application listed here, you should revoke its access.
They can request authorization for a user using the Consumer Key and Consumer Secret via OAuth negotiation.

Отредактировано Лис (2023-02-22 08:32:52)

0

4

OAuth works by delegating user authentication to the service that hosts a user account and authorizing third-party applications to access that user account.
OAuth 2 provides authorization flows for web and desktop applications, as well as mobile devices.

Client: The client is the application that wants to access the user’s account. Before it may do so, it must be authorized by the user, and the authorization must be validated by the API.

Authorization Server: The authorization server verifies the identity of the user then issues access tokens to the application.

Resource Server: The resource server hosts the protected user accounts.

(тут мне непонятно, зачем разделять Authorization Server и Resource Server ? Может быть у Resource Server неправильное описание, и он хранит не аккаунты, а это тот сервер, на который пользователю надо получить доступ ?)

[html]<img src="https://assets.digitalocean.com/articles/oauth/abstract_flow.png">[/html]

--- Ушел читать про OAuth, не поминайте лихом ---

Отредактировано Лис (2023-02-22 08:24:33)

0

5

2008-05-01,
Last week SourceForge quietly added support for OpenID to their site. The news is official now.
«SourgeForge.net isn’t acting as an OpenID Provider but rather is accepting OpenID logins»
https://openid.net/2008/05/01/sourcefor … id-logins/

«we’ve spent the past couple weeks on it - integrating the Zend Framework OpenID component into our site code.»
«our implementation on our OpenID site doc page».

«use your profile URL as an OpenID»

=== Social Logins ===

2015-01-21, «SourceForge is attempting to phase out OpenID logins in favor of social logins, according to their support forum.»
https://webapps.stackexchange.com/quest … ith-openid

(это ещё что за сущность такая?)

«Sites using the social login in this manner typically offer social features such as commenting, sharing, reactions and gamification.»
«social login is generally not used for strict, highly secure applications such as those in banking or health. »
«These logins are also a new frontier for fraud and account abuse as attackers use sophisticated means to hack these authentication mechanisms.»
«the overall security quality of SSO deployments seems worrisome» (тревожно)

Отвечает ChatGPT:

Для добавления функции Social Login на свой сайт необходимо воспользоваться специальными сервисами, предоставляющими API для интеграции.
Наиболее популярными являются:
- Facebook Login
- Google Sign-In
- Twitter Sign-In
- Linked-In Sign-In
- Github Sign-In
- VK Sign-in
Для начала надо зарегистрироваться на этих сервисах и получить ключи доступа. Затем необходимо добавить код для интеграции с социальными сетями на свой сайт. Для этого можно использовать готовые библиотеки или написать свой код. После этого необходимо добавить кнопки на страницы входа и регистрации на сайте.

=== Security Assertion Markup Language (SAML) ===

«The SAML specification defines three roles: the principal (typically a human user), the identity provider (IdP) and the service provider (SP).»

https://upload.wikimedia.org/wikipedia/commons/thumb/0/04/Saml2-browser-sso-redirect-post.png/1200px-Saml2-browser-sso-redirect-post.png

=== Сухой остаток ===

Насколько я понимаю, SourceForge отключил OpenID, не осилил Social Login и
прямо сейчас можно регистрироваться и логиниться только через логины-пароли.
Это никак не объясняет, можно ли с теми же логинами зайти на другие сайты (проектов).

Отредактировано Лис (2023-02-22 12:17:44)

0

6

Как создать проект
https://sourceforge.net/p/forge/documentation/Create a New Project/

«If you are not currently an Admin on a project you will need to complete a phone-based verification
(чего? откуда сотовые вышки в лесу?)

из документации

«Due to past abuse, we have removed the ability to send mail from project web and user web hosting.»

(и чего, а как тогда пользователи будут регистрироваться на Q&A движке?)

Отредактировано Лис (2023-02-22 11:34:44)

0

7

«The following types of service are not currently included in our offering. This list is provided as some popular hosting providers do include one or more of these services:
...
    SF.net User Authentication
»

0

8

Our web servers are configured with the following:
    The CentOS 7 distribution of Linux.
    Apache 2.4.x web server
    PHP 5.4.x under mod_php for PROJECT.sourceforge.net domains, and PHP 7.1.x under mod_php for PROJECT.sourceforge.io domains. View the full configuration by creating and accessing a PHP script containing:
    <?php phpinfo (); ?>
    Perl 5.16.x
    Python 2.7.x

«Custom VHOST services allow projects to have our web servers answer traffic for domain names they register»
«SourceForge.net does not provide DNS services. »

Вот это интересно, наверное? Аутентификацию придётся делать самостоятельно, почтовые сервисы надо поизучать от zoho.eu, там вроде можно бесплатно их приделать к домену. Ну а устанавливаемую софтину надо будет настроить на работу через их почтовый сервер.

«We currently limit the number of custom VHOSTs to ten.»

yourdomain.com IN A to 204.68.111.101.
wwwyourdomain.com CNAME to vhost2.sourceforge.net.

Upload your content to your webspace (you may see 404 errors otherwise)
Login to SourceForge.net as a project administrator
Go to the Admin page for your project
Select "VHost DNS" in the left sidebar.
Records need to be added for each of the hostnames you want our servers to answer.
If you want our servers to answer for mydomain.org and wwwmydomain.org, you need to add these two records separately.

«(replace USERNAME with your SourceForge.net username»

=== Project Web Services ===

«Projects web space is a subdomain under .sourceforge.io and uses PHP 7»

sftp USERNAME@web.sourceforge.net

cd /home/project-web/fooproject/htdocs

=== Developer Web Services ===

«The VHOST facility is not available for the Developer web space.»

«At SourceForge.net, each user is provided the USERNAME.users.sourceforge.net sub domain. You may access your user website via web browser at: http://USERNAME.users.sourceforge.net»

«sftp USERNAME@frs.sourceforge.net»

cd /home/user-web/USERNAME/htdocs/

«The files for your developer website should be uploaded or moved into the /home/user-web/USERNAME/htdocs/ folder»

Отредактировано Лис (2023-02-22 11:41:49)

0

9

=== Промежуточные итоги ===

Итак, понятно, как закачать туда приложение (например Q&A движок, или модный форум Discourse как у МихалНика) , оно даже, наверное, будет работать на отдельном домене. Но надо ещё разобраться с почтой (ведь как написано выше SourceForge её не предоставляет).

Хотя нет, про Руби непонятно, но это не принципиально, можно использовать PunBB, MyBB, в общем, их много, а моё дело - стратегия.

Ранее по теме:
2023-02-19, ВиО(ЧаВО?)-сайты
2021-12-07, Не запустить ли по этому поводу движок форума Discourse

Отредактировано Лис (2023-02-22 12:40:02)

0

10

Лис написал(а):

модный форум Discourse как у МихалНика

Так он не у меня. Я лишь автоматически унаследовал административные функции после переноса с такого же на mybb.

Отредактировано MihalNik (2023-02-22 16:04:07)

0

11

MihalNik написал(а):

Так он не у меня

Что ты наделал!!!... Ты убил весь соревновательный момент в моей мотивации.
Я уже нашел, как запускать Ruby через cgi
https://stackoverflow.com/questions/224 … -in-apache

А теперь всё, не интересно...

0

12

Цель всё ещё актуальна, и я всё ещё собираюсь сделать несколько прыжков в этом направлении.

Однако, возможно, получится не то, что ожидает Евгений,
и до возможностей документирования проекта там очень далеко.

---

Директория, в которую в Gentoo складывают сайты во время установки называется
/usr/share/webapps/
написано это здесь:
https://wiki.gentoo.org/wiki/Webapp-config
«Different versions of the same package can be installed on the same system at the same time.»
(вопрос: а как формируется имя приложения в этой директории, оно же должно зависить от ${CATEGORY}/${PV} или ${PV}?)

Директория, в которую в Gentoo настраивает сайты при помощи утилиты webapp-config называется
/var/www/localhost/htdocs
где lolcahost - это уникальное для веб-приложения название (например имя домена),
а htdocs это одна из поддиректорий (для основного контента)

написано это здесь:
https://en.wikipedia.org/wiki/Filesyste … y_Standard
/var
Variable files: files whose content is expected to continually change during normal operation of the system, such as logs, spool files, and temporary e-mail files.
и здесь:
https://refspecs.linuxfoundation.org/FH … s-3.0.html
https://wiki.linuxfoundation.org/lsb/fhs
/srv contains site-specific data which is served by this system.
«One method for structuring data under /srv is by protocol, eg. ftp, rsync, www, and cvs.»
см. также
https://www.linux.org.ru/forum/web-development/13242703

Директория, в которой располагаются скрипты конфигурации для сайта называется
/etc/apache2/vhosts.d/*.conf
написано это здесь:
https://wiki.gentoo.org/wiki/Apache

Выглядит фрагмент содержимого файла конфигруации как-то так:

DocumentRoot /var/www/localhost/htdocs

<Directory /var/www/localhost/htdocs>
    Options +ExecCGI
    AddHandler cgi-script .r
</Directory>

где .r - это расширение файлов, а "cgi-script" это слово, которое где-то ещё превращается в путь до бинарного файла.

Плохо что та страница про webapp-config не ссылается на
https://devmanual.gentoo.org/eclass-ref … index.html
https://wiki.gentoo.org/wiki/Project:We … app.eclass

MY_HTDOCSDIR is one of the variables exported by webapp_src_preinst.

https://github.com/gentoo/gentoo/blob/m … #L359-L361
«see the webapp_read_config() function to find where these are defined»

/etc/vhosts/webapp-config

# grep -vE "(^$)|(^#.*$)"  /etc/vhosts/webapp-config
vhost_root="/var/www/${vhost_hostname}"
vhost_hostname="localhost"
vhost_server="apache"
vhost_config_default_dirs="default-owned"
vhost_config_virtual_files="virtual"
vhost_config_dir="${vhost_root}/conf"
vhost_default_uid="root"
vhost_default_gid="root"
vhost_htdocs_insecure="htdocs"
vhost_htdocs_secure="htdocs-secure"
vhost_perms_serverowned_dir="0775"
vhost_perms_serverowned_file="0664"
vhost_perms_configowned_dir="0755"
vhost_perms_configowned_file="0644"
vhost_perms_defaultowned_dir="0755"
vhost_perms_virtualowned_file="o-w"
vhost_perms_installdir="0755"
allow_absolute="no"
package_manager="portage"
WA_CONF_VERSION="7"

https://github.com/gentoo/gentoo/blob/m … eclass#L66

[ebuild   R    ] app-admin/webapp-config-1.55-r2::gentoo  USE="portage" PYTHON_TARGETS="python3_10 -python3_9" 0 KiB

# webapp-config --query webapp-config webapp-config-1.55-r2
VHOST_ROOT="/var/www/localhost"
VHOST_HOSTNAME="localhost"
VHOST_SERVER="apache"
VHOST_CONFIG_DEFAULT_DIRS="default-owned"
VHOST_CONFIG_VIRTUAL_FILES="virtual"
VHOST_CONFIG_DIR="/var/www/localhost/conf"
VHOST_DEFAULT_UID="root"
VHOST_DEFAULT_GID="root"
VHOST_HTDOCS_INSECURE="htdocs"
VHOST_HTDOCS_SECURE="htdocs-secure"
VHOST_PERMS_SERVEROWNED_DIR="0775"
VHOST_PERMS_SERVEROWNED_FILE="0664"
VHOST_PERMS_CONFIGOWNED_DIR="0755"
VHOST_PERMS_CONFIGOWNED_FILE="0644"
VHOST_PERMS_DEFAULTOWNED_DIR="0755"
VHOST_PERMS_VIRTUALOWNED_FILE="o-w"
VHOST_PERMS_INSTALLDIR="0755"
ALLOW_ABSOLUTE="no"
PACKAGE_MANAGER="portage"
WA_CONF_VERSION="7"
VHOST_SUBDOMAIN_1="localhost"
MY_HTDOCSBASE="htdocs"
G_ORIG_INSTALLDIR="/"
MY_APPSUFFIX="/webapp-config/webapp-config-1.55-r2"
PERSIST_SUFFIX="/webapp-config/webapp-config-1.55-r2"
CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt /var/bind"
MY_ETCCONFIG="/etc/vhosts/webapp-config"
MY_DOTCONFIG=".webapp"
MY_VERSION="1.55"
MY_CONF_VERSION="7"
MY_BUGSURL="http://bugs.gentoo.org/"
G_MYNAME="/usr/lib/python-exec/python3.10/webapp-config"
G_INSTALLDIR="/"
G_LINK_OPTIONS=""
G_LINK_TYPE="hard"
G_CONFIGPREFIX="._cfg"
G_PERMS_DOTCONFIG="0600"
VHOST_CONFIG_GID="0"
VHOST_CONFIG_UID="0"
VHOST_SERVER_UID="root"
VHOST_SERVER_GID="root"
MY_PERSISTROOT="/var/db/webapps"
WA_INSTALLSBASE="installs"
G_HTDOCSDIR="/var/www/localhost/htdocs"
MY_APPDIR="/usr/share/webapps//webapp-config/webapp-config-1.55-r2"
MY_HTDOCSDIR="/usr/share/webapps//webapp-config/webapp-config-1.55-r2/htdocs"
MY_PERSISTDIR="/var/db/webapps//webapp-config/webapp-config-1.55-r2"
MY_HOSTROOTDIR="/usr/share/webapps//webapp-config/webapp-config-1.55-r2/hostroot"
MY_CGIBINDIR="/usr/share/webapps//webapp-config/webapp-config-1.55-r2/hostroot/cgi-bin"
MY_ICONSDIR="/usr/share/webapps//webapp-config/webapp-config-1.55-r2/hostroot/icons"
MY_ERRORSDIR="/usr/share/webapps//webapp-config/webapp-config-1.55-r2/hostroot/error"
G_CGIBINDIR="/var/www/localhost/cgi-bin"
MY_APPROOT="/usr/share/webapps"
MY_HOSTROOTBASE="hostroot"
MY_CGIBINBASE="cgi-bin"
MY_ICONSBASE="icons"
MY_ERRORSBASE="error"
MY_SQLSCRIPTSDIR="/usr/share/webapps//webapp-config/webapp-config-1.55-r2/sqlscripts"
MY_HOOKSCRIPTSDIR="/usr/share/webapps//webapp-config/webapp-config-1.55-r2/hooks"
MY_SERVERCONFIGDIR="/usr/share/webapps//webapp-config/webapp-config-1.55-r2/conf"
WA_CONFIGLIST="/usr/share/webapps//webapp-config/webapp-config-1.55-r2/config-files"
WA_SOLIST="/usr/share/webapps//webapp-config/webapp-config-1.55-r2/server-owned-files"
WA_VIRTUALLIST="/usr/share/webapps//webapp-config/webapp-config-1.55-r2/virtuals"
WA_INSTALLS="/var/db/webapps//webapp-config/webapp-config-1.55-r2/installs"
WA_POSTINSTALLINFO="/usr/share/webapps//webapp-config/webapp-config-1.55-r2/post-install-instructions.txt"

Отредактировано Лис (2023-03-08 15:00:39)

0

13

https://httpd.apache.org/docs/2.4/mod/m … addhandler

Action add-footer /cgi-bin/footer.pl

https://httpd.apache.org/docs/2.4/mod/m … tml#action

Action action-type cgi-script [virtual]
"virtual" modifier turns off the check whether the requested file really exists.

It sends the URL and file path of the requested document using the standard CGI
PATH_INFO and
PATH_TRANSLATED environment variables.

The handler used for the particular request is passed using the REDIRECT_HANDLER variable.

AddHandler my-file-type .xyz
Action my-file-type "/cgi-bin/program.cgi"

note that Script with a method of GET will only be called if there are query arguments present (e.g., foo.html?hi). Otherwise, the request will proceed normally.
(то есть, статический контент можно обслуживать одним образом, а динамический - другим. Но зачем, если можно просто расположить их по разным URL?)

0

14

Как я понял, есть три пути запускать руби:
1) mod_ruby (самый правильный, должен быть специально настроен Apache)
2) системным интерпретатором Ruby (он, естественно, должен быть установлен)
3) использовать CGI-программу eruby:
https://studfile.net/preview/4490125/page:60/
(проблема в том, что я не знаю, где её достать, и будет ли она совместима с форумом Discourse)

Но возможно, что я понимаю неправильно, и ERB (embedded ruby) это такой шаблонизатор.
https://www.linuxtopia.org/online_books … pache.html
https://docs.fileformat.com/ru/programming/erb/

Отредактировано Лис (2023-03-08 15:59:18)

0

15

Я запускаю скрипт через URL
https://plana-web.sourceforge.io/cgi-bin/a.out
но он выдаёт мне:

An error has been encountered in accessing this page.

1. Server: plana-web.sourceforge.io
2. URL path: /cgi-bin/a.out
3. Error notes: End of script output before headers: a.out
4. Error type: 500
5. Request method: GET
6. Request query string:
7. Time: 2023-03-19 04:53:48 UTC (1679201628)

Reporting this problem: The problem you have encountered is with a project web site hosted by SourceForge.net. This issue should be reported to the SourceForge.net-hosted project (not to SourceForge.net).

If this is a severe or recurring/persistent problem, please do one of the following, and provide the error text (numbered 1 through 7, above):

    Contact the project via their designated support resources.
    Contact the project administrators of this project via email (see the upper right-hand corner of the Project Summary page for their usernames) at user-name@users.sourceforge.net

If you are a maintainer of this web content, please refer to the Site Documentation regarding web services for further assistance.

NOTE: As of 2008-10-23 directory index display has been disabled by default. This option may be re-enabled by the project by placing a file with the name ".htaccess" with this line:

Options +Indexes

Я думаю, что это происходит из-за того, что используются различные версии библиотек рантайма, а файл a.out не может найти свои версии с которыми он был скомпилирован.
А вот если бы компиляция была полностью статической, то такой проблемы бы не было.

Отредактировано Лис (2023-03-19 07:57:13)

0

16

Вряд ли. Для проверки можно положить в папку cgi-bin простенький sh- скрипт. Он точно не будет зависеть от библиотек.

0

17

Башевый скрипт работает, он заодно мне пишет, что линковал я программу с такой libc:

$ /lib64/libc.so.6
GNU C Library (Gentoo 2.36-r5 p5) stable release version 2.36.
Copyright (C) 2022 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
Compiled by GNU CC version 11.3.1 20221209.
libc ABIs: UNIQUE IFUNC ABSOLUTE
Minimum supported kernel: 3.2.0
For bug reporting instructions, please see:
<https://bugs.gentoo.org/>.

а на сервере такая libc:

GNU C Library (GNU libc) stable release version 2.17, by Roland McGrath et al.
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
Compiled by GNU CC version 4.8.5 20150623 (Red Hat 4.8.5-44).
Compiled on a Linux 3.10.0 system on 2022-05-18.
Available extensions:
The C stubs add-on version 2.1.2.
crypt add-on version 2.1 by Michael Glad and others
GNU Libidn by Simon Josefsson
Native POSIX Threads Library by Ulrich Drepper et al
BIND-8.2.3-T5B
RT using linux kernel aio
libc ABIs: UNIQUE IFUNC
For bug reporting instructions, please see:
<http://www.gnu.org/software/libc/bugs.html>.

0

18

Ошибка такая:

/home/project-web/plana-web/cgi-bin/a.out: /lib64/libc.so.6: version `GLIBC_2.34' not found (required by /home/project-web/plana-web/cgi-bin/a.out)
1

1 - это return error code

А если скопировать свою libc туда на сервер, то такая:

/home/project-web/plana-web/cgi-bin/a.out: relocation error: /home/project-web/plana-web/cgi-bin/libc.so.6: symbol _dl_exception_create, version GLIBC_PRIVATE not defined in file ld-linux-x86-64.so.2 with link time reference
127

Отредактировано Лис (2023-03-19 10:58:53)

0

19

Одна библиотека тащит за собой другую. А если попробовать статическую компиляцию?

Код:
gcc -static main.c

Отредактировано Евгений (2023-03-19 12:34:10)

0

20

Программа Hello:

Код:
#include <stdio.h>

int main()
{
	printf("Hello");
	return 0;
}

gcc main.c
Размер: 15,6 КиБ (15 960)

gcc -static main.c
Размер: 879,2 КиБ (900 272)

Отредактировано Евгений (2023-03-19 13:48:14)

0

21

Удивительно, но это работает. Я думал надо с musl собирать.

UPD:
с musl тоже собрал:

$ clang --verbose
clang version 15.0.7
Target: x86_64-gentoo-linux-musl
Thread model: posix
InstalledDir: /usr/lib/llvm/15/bin
Configuration file: /etc/clang/clang.cfg
System configuration file directory: /etc/clang

$ clang -static -Wl,-s main.c

$ file a.out
a.out: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, stripped

$ du -b a.out
26192 a.out

работает.

Вообще говоря, можно весь тулчейн собрать в префикс и закачать его туда на сайт.
И тогда будет неважно, есть у них в системе компилятор или нет, у скрипта будет свой, локальный.

Но вот стоит ли "русифицированный Си" таких мучений? Ведь можно собрать КуМир, а можно чем-нибудь ещё заняться.

Отредактировано Лис (2023-03-20 06:06:24)

0

22

Чем sourceforge неудачный для хостинга коммьюнити-сайтов:
- с него нельзя делать исходящих соединений.
Это означает, что если надо отправить email о регистрации, то где-то должен быть внешний демон, который поллит периодически очередь запросов, и это будет давать ненужную нагрузку и задержки. freeman не решил задачу, и на его форум "новые регистрации запрещены".

Можно было бы сделать регистрацию без подтверждения email-а, но тогда не будет функции восстановления пароля.
И тут не помогут альтернативные средства связи типа XMPP(Jabber) вместо email. Потому что в любом случае действие, которое нужно сделать - это исходящая с сервера отправка.

Прям не знаю, стоит ли этим заниматься (делать поллящий демон и регистрацию таким способом).

https://sourceforge.net/p/forge/documentation/Project Web and Developer Web/#outbound-connectivity

Due to past abuse, outbound access to other hosts from the web servers is strictly prohibited and is blocked by firewall rules. This includes access to other SourceForge.net hosts; the only exception to this policy is access to our project database servers.

Так же, полное отсутствие исходящих соединений означает, что невозможны вход по OpenID, OAuth, Social Login, Indie Auth.

Отредактировано Лис (2023-03-20 16:47:47)

0